LoginSignup
0
0

[Cloud Storage API(V2)] Javaでデフォルトのアクセス制御リスト(ACL)エントリを取得する

Posted at

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)と同じです。




おしまい。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0