Cloud Storage API V2(Java)を使用して、
Cloud Storageのデフォルトのアクセス制御リスト(ACL)エントリを取得する方法
についてご紹介します。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う
を参照ください。
No | 目次 | ||
---|---|---|---|
1 | ACLリストを取得 | ||
1 | スコープ | ||
2 | 実行 | ||
3 | レスポンスの内容 | ||
2 | ACLを取得 | ||
1 | スコープ | ||
2 | 実行 | ||
3 | レスポンスの内容 |
1. ACLリストを取得
指定したバケットのデフォルトのACLエントリ一覧を取得します。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。
1.2. 実行
public static void main(String[] args) throws Exception{
Storage storage = getStorage();
Storage.DefaultObjectAccessControls access = storage.defaultObjectAccessControls();
Storage.DefaultObjectAccessControls.List list = access.list("バケットID");
ObjectAccessControls res = list.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
GET: https://storage.googleapis.com/storage/v1/b/{バケットID}/defaultObjectAcl
が実行されます。
1.2.2. クエリパラメータ
Storage.DefaultObjectAccessControls.Listのsetメソッドにより、クエリパラメータを追加できます。
メソッド | 引数 | 説明 |
---|---|---|
setIfMetagenerationMatch | Long | メタ世代番号(metageneration)と一致した場合のみACLエントリを取得 |
setIfMetagenerationNotMatch | Long | メタ世代番号(metageneration)と一致しない場合のみACLエントリを取得 |
1.3. レスポンスの内容
ObjectAccessControls
メソッド | 戻り値 | 説明 |
---|---|---|
getKind | String | リソースの種類 固定文字列:"storage#objectAccessControls" |
getItems | List<ObjectAccessControl> | ACLのリスト |
ObjectAccessControl
メソッド | 戻り値 | 説明 |
---|---|---|
getKind | String | リソースの種類 固定文字列:"storage#objectAccessControl" |
getDomain | String | エンティティに関連付けられているドメイン |
getEmail | String | エンティティに関連付けられているメールアドレス |
getEntity | String | 権限を保持するエンティティ 次のいずれかの形式 user-{email} group-{groupId} group-{email} domain-{domain} project-{team-projectId} allUsers allAuthenticatedUsers |
getEntityId | String | エンティティID |
getEtag | String | アクセス制御エントリのHTTPエンティティタグ |
getProjectTeam | ObjectAccessControl.ProjectTeam | エンティティに関連付けられているプロジェクトチーム |
getRole | String | エンティティのアクセス許可 "OWNER"、"READER"、"WRITER" |
ObjectAccessControl.ProjectTeam
メソッド | 戻り値 | 説明 |
---|---|---|
getProjectNumber | String | プロジェクト番号 |
getTeam | String | チーム役割 "editors"、"owners"、"viewers" |
2. ACLを取得
指定したデフォルトのACLエントリのメタデータを取得します。
2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。
2.2. 実行
エンティティは、ObjectAccessControlのgetEntity()で取得できる値を使用します。
public static void main(String[] args) throws Exception{
Storage storage = getStorage();
Storage.DefaultObjectAccessControls access = storage.defaultObjectAccessControls();
Storage.DefaultObjectAccessControls.Get get = access.get("バケットID","エンティティ");
ObjectAccessControl res = get.execute();
System.out.println(res);
}
2.2.1. HTTPリクエスト
GET: https://storage.googleapis.com/storage/v1/b/{バケットID}/defaultObjectAcl/{エンティティ}
が実行されます。
2.2.2. クエリパラメータ
クエリパラメータはありません。
2.3. レスポンスの内容
ObjectAccessControl
2.3. レスポンスの内容(ObjectAccessControl)と同じです。
おしまい。。