LoginSignup
0
0

[Cloud Storage API(V2)] Javaでバケットを取得する

Last updated at Posted at 2024-04-24

Cloud Storage API V2(Java)を使用して、
Cloud Storageのバケットのメタデータを取得する方法
についてご紹介します。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う
を参照ください。

No 目次
1 バケット一覧を取得
1 スコープ
2 実行
3 レスポンスの内容
2 バケットを取得
1 スコープ
2 実行
3 レスポンスの内容

1. バケット一覧を取得

指定したプロジェクトのバケット一覧を取得します。

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

StorageScopes.CLOUD_PLATFORM
StorageScopes.CLOUD_PLATFORM_READ_ONLY
StorageScopes.DEVSTORAGE_FULL_CONTROL
StorageScopes.DEVSTORAGE_READ_ONLY
StorageScopes.DEVSTORAGE_READ_WRITE

⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。

1.2. 実行

public static void main(String[] args) throws Exception{
    Storage storage = getStorage();
    Storage.Buckets buckets = storage.buckets();
    Storage.Buckets.List list = buckets.list("プロジェクトID");
    
    Buckets res = list.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

GET: https://storage.googleapis.com/storage/v1/b
が実行されます。

1.2.2. クエリパラメータ

Storage.Buckets.Listのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setMaxResults Long 取得するバケットの最大数
setPageToken String 取得するページトークン
setPrefix String このプレフィックスで始まるバケットを取得
setProjection String 返されるプロパティのセット
"full"(すべて)、"noAcl"(aclオブジェクト以外)

1.3. レスポンスの内容

Buckets

メソッド 戻り値 説明
getKind String リソースの種類
固定文字列:"storage#buckets"
getNextPageToken String 次のページトークン
getItems List<Bucket> バケットのリスト

Bucket

メソッド 戻り値 説明
getId String バケットID
getName String バケットの名前
getSelfLink String バケットURI
getKind String リソースの種類
固定文字列:"storage#bucket"
getAcl List<BucketAccessControl> バケットのアクセス制御
getAutoclass Bucket.Autoclass バケットのAutoclass構成
getBilling Bucket.Billing バケットの課金構成
getCors List<Bucket.Cors> バケットのCross-OriginResourceSharing(CORS)構成
getCustomPlacementConfig Bucket.CustomPlacementConfig バケットのカスタムロケーション構成
getDefaultEventBasedHold Boolean eventBasedHoldを自動的に適用するか
getDefaultObjectAcl List<ObjectAccessControl> ACLが提供されていない場合に新しいオブジェクトに適用されるデフォルトのアクセス制御
getEncryption Bucket.Encryption バケットの暗号化構成
getEtag String バケットのHTTPエンティティタグ
getIamConfiguration Bucket.IamConfiguration バケットのIAM構成
getLabels Map<String,String> ユーザーが指定したバケットラベル
キー:バケットID
getLifecycle Bucket.Lifecycle バケットのライフサイクル構成
getLocation String バケットの場所
getLocationType String バケットが存在する場所のタイプ
getLogging Bucket.Logging バケットのログ構成
getMetageneration Long メタ世代番号(metageneration)
getObjectRetention Bucket.ObjectRetention バケットのオブジェクト保持設定
getOwner Bucket.Owner バケットの所有者
getProjectNumber BigInteger バケットが属するプロジェクトのプロジェクト番号
getRetentionPolicy Bucket.RetentionPolicy バケットの保持ポリシー
getRpo String バケットのリージョン間レプリケーションの目標復旧ポイント
getSoftDeletePolicy Bucket.SoftDeletePolicy バケットの論理的な削除ポリシー
getStorageClass String バケットのデフォルトのストレージクラス
getTimeCreated DateTime バケットの作成時刻
getUpdated DateTime バケットの更新された時刻
getVersioning Bucket.Versioning バケットのバージョン管理構成
getWebsite Bucket.Website バケットのWebサイト構成

BucketAccessControl

メソッド 戻り値 説明
getId String アクセス制御エントリID
getBucket String バケットの名前
getKind String リソースの種類
固定文字列:"storage#bucketAccessControl"
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 BucketAccessControl.ProjectTeam エンティティに関連付けられているプロジェクトチーム
getRole String エンティティのアクセス許可
"OWNER"、"READER"、"WRITER"
getSelfLink String このアクセス制御エントリへのリンク

BucketAccessControl.ProjectTeam

メソッド 戻り値 説明
getProjectNumber String プロジェクト番号
getTeam String チーム役割
"editors"、"owners"、"viewers"

Bucket.Autoclass

メソッド 戻り値 説明
getEnabled Boolean Autoclassが有効か
getTerminalStorageClass String オートクラスが有効なバケット内のオブジェクトがアクセスされなかった場合に遷移するストレージクラス
getTerminalStorageClassUpdateTime DateTime 最後に更新された時刻
getToggleTime DateTime 最後に有効または無効になった時刻

Bucket.Billing

メソッド 戻り値 説明
getRequesterPays Boolean リクエスターの支払いが有効か

Bucket.Cors

メソッド 戻り値 説明
getMaxAgeSeconds Integer プリフライト応答で使用されるAccess-Control-Max-Ageヘッダーで返される値(秒単位)
getMethod List<String> 応答ヘッダーメソッド
getOrigin List<String> CORS応答ヘッダーを受信できるオリジンのリスト
getResponseHeader List<String> HTTPヘッダーのリスト

Bucket.CustomPlacementConfig

メソッド 戻り値 説明
getDataLocations List<String> デュアルリージョン バケットを構成するリスト

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"

Bucket.Encryption

メソッド 戻り値 説明
getDefaultKmsKeyName String オブジェクトの暗号化に使用されるCloud KMS Key

Bucket.IamConfiguration

メソッド 戻り値 説明
getPublicAccessPrevention String バケットのパブリック アクセス防止"inherited"ステータス
getUniformBucketLevelAccess Bucket.IamConfiguration.UniformBucketLevelAccess バケットの均一なバケットレベルのアクセス 構成

Bucket.IamConfiguration.UniformBucketLevelAccess

メソッド 戻り値 説明
getEnabled Boolean バケットが均一なバケットレベルのアクセスを使用するか
getLockedTime DateTime 変更するための期限

Bucket.Lifecycle

メソッド 戻り値 説明
getRule List<Bucket.Lifecycle.Rule> ライフサイクル管理ルール

Bucket.Lifecycle.Rule

メソッド 戻り値 説明
getAction List<Bucket.Lifecycle.Rule.Action> 実行するライフサイクルアクション
getCondition Bucket.Lifecycle.Rule.Condition アクションが実行される条件

Bucket.Lifecycle.Rule.Action

メソッド 戻り値 説明
getStorageClass String 新しいストレージクラス
getType String アクションのタイプ

Bucket.Lifecycle.Rule.Condition

メソッド 戻り値 説明
getAge Integer オブジェクトの経過時間
getCreatedBefore DateTime UTCで指定された日付の午前0時より前にオブジェクトが作成された時刻
getCustomTimeBefore DateTime オブジェクトのメタデータがこのライフサイクル条件で使用される日付よりも前の日付に設定された時刻
getDaysSinceCustomTime Integer オブジェクトに設定されたユーザー指定のタイムスタンプから経過した日数
getDaysSinceNoncurrentTime Integer オブジェクトの非現行タイムスタンプから経過した日数
getIsLive Boolean オブジェクトのライブバージョンと一致しているか
getMatchesPrefix List<String> オブジェクトの接頭辞
getMatchesSuffix List<String> オブジェクトの接尾辞
getMatchesStorageClass List<String> ストレージクラスを持つオブジェクト
getNoncurrentTimeBefore DateTime 非最新になったオブジェクトの時刻
getNumNewerVersions Integer 新しいバージョン

Bucket.Logging

メソッド 戻り値 説明
getLogBucket String 現在のバケットのログを配置する宛先バケット
getLogObjectPrefix String ログオブジェクト名のプレフィックス

Bucket.ObjectRetention

メソッド 戻り値 説明
getMode String バケット内のオブジェクト保持構成

Bucket.Owner

メソッド 戻り値 説明
getEntity String 形式のエンティティ
getEntityId String エンティティID

Bucket.RetentionPolicy

メソッド 戻り値 説明
getEffectiveTime DateTime retentionPolicyが有効になった時刻
getIsLocked Boolean 保持ポリシーがロックされているか
getRetentionPeriod Long バケット内のオブジェクトを保持し、削除、置換、または非最新にすることができない期間(秒単位)

Bucket.SoftDeletePolicy

メソッド 戻り値 説明
getEffectiveTime DateTime 論理的な削除ポリシーが有効になる日時
getRetentionDurationSeconds Long 論理的に削除されたオブジェクトが保持され、完全に削除できない期間(秒単位)

Bucket.Versioning

メソッド 戻り値 説明
getEnabled Boolean このバケットのバージョン管理が完全に有効か

Bucket.Website

メソッド 戻り値 説明
getMainPageSuffix String サフィックス
getNotFoundPage String オブジェクトが欠落している場合の名前付きオブジェクト

2. バケットを取得

指定したバケットのメタデータを取得します。

2.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

StorageScopes.CLOUD_PLATFORM
StorageScopes.CLOUD_PLATFORM_READ_ONLY
StorageScopes.DEVSTORAGE_FULL_CONTROL
StorageScopes.DEVSTORAGE_READ_ONLY
StorageScopes.DEVSTORAGE_READ_WRITE

⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。

2.2. 実行

public static void main(String[] args) throws Exception{
    Storage storage = getStorage();
    Storage.Buckets buckets = storage.buckets();
    Storage.Buckets.Get get = buckets.get("バケットID");

    Bucket res = get.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

GET: https://storage.googleapis.com/storage/v1/b/{バケットID}
が実行されます。

2.2.2. クエリパラメータ

Storage.Buckets.Getのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setIfMetagenerationMatch Long メタ世代番号(metageneration)と一致する場合のみ結果を受け取る
setIfMetagenerationNotMatch Long メタ世代番号(metageneration)と一致しない場合のみ結果を受け取る
setProjection String 受け取るプロパティのセット

2.3. レスポンスの内容

Bucket

2.3. レスポンスの内容(Bucket)と同じです。




おしまい。。

0
0
1

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