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.ObjectAccessControls access = storage.objectAccessControls();
Storage.ObjectAccessControls.List list = access.list("バケットID","オブジェクトID");
ObjectAccessControls res = list.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
GET: https://storage.googleapis.com/storage/v1/b/{バケットID}/o/{オブジェクトID}/acl
が実行されます。
1.2.2. クエリパラメータ
Storage.ObjectAccessControls.Listのsetメソッドにより、クエリパラメータを追加できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setGeneration | Long | 取得する世代番号(generation) |
1.3. レスポンスの内容
ObjectAccessControls
| メソッド | 戻り値 | 説明 |
|---|---|---|
| getKind | String | リソースの種類 固定文字列:"storage#objectAccessControls" |
| getItems | List<ObjectAccessControl> | ACLのリスト |
ObjectAccessControl
| メソッド | 戻り値 | 説明 |
|---|---|---|
| getId | String | アクセス制御エントリID |
| getBucket | String | バケットの名前 |
| getObject | String | オブジェクトの名前 |
| getEntityId | String | エンティティID |
| getEntity | String | 権限を保持するエンティティ 次のいずれかの形式 user-{email} group-{groupId} group-{email} domain-{domain} project-{team-projectId} allUsers allAuthenticatedUsers |
| getKind | String | リソースの種類 固定文字列:"storage#objectAccessControl" |
| getDomain | String | エンティティに関連付けられているドメイン |
| getEmail | String | エンティティに関連付けられているメールアドレス |
| getEtag | String | アクセス制御エントリのHTTPエンティティタグ |
| getGeneration | Long | 世代番号(generation) |
| getProjectTeam | BucketAccessControl.ProjectTeam | エンティティに関連付けられているプロジェクトチーム |
| getRole | String | エンティティのアクセス許可 "OWNER"、"READER"、"WRITER" |
| getSelfLink | String | アクセス制御エントリへのリンク |
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のgetObject()で取得できる値を使用します。
エンティティは、ObjectAccessControlのgetEntity()で取得できる値を使用します。
public static void main(String[] args) throws Exception{
Storage storage = getStorage();
Storage.ObjectAccessControls access = storage.objectAccessControls();
Storage.ObjectAccessControls.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}/o/{オブジェクト名}/acl/{エンティティ}
が実行されます。
2.2.2. クエリパラメータ
Storage.ObjectAccessControls.Getのsetメソッドにより、クエリパラメータを追加できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setGeneration | Long | 取得する世代番号(generation) |
2.3. レスポンスの内容
ObjectAccessControl
2.3. レスポンスの内容(ObjectAccessControl)と同じです。
おしまい。。