Cloud Storage API V2(Java)を使用して、
Cloud Storageのバケットを生成・更新・削除する方法
についてご紹介します。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う
を参照ください。
| No | 目次 | |
|---|---|---|
| 1 | バケットを生成 | |
| 1 | スコープ | |
| 2 | 実行 | |
| 3 | レスポンスの内容 | |
| 2 | バケットを上書き | |
| 1 | スコープ | |
| 2 | 実行 | |
| 3 | レスポンスの内容 | |
| 3 | バケットを更新 | |
| 1 | スコープ | |
| 2 | 実行 | |
| 3 | レスポンスの内容 | |
| 4 | 空のバケットを削除 | |
| 1 | スコープ | |
| 2 | 実行 | |
| 3 | レスポンスの内容 |
1. バケットを生成
指定したプロジェクトにバケットを作成します。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL
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 bucketsu = storage.buckets();
Bucket content = new Bucket();
content.setName("バケット名");
Storage.Buckets.Insert insert = bucketsu.insert("プロジェクトID",content);
Bucket res = insert.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
POST: https://storage.googleapis.com/storage/v1/b
が実行されます。
1.2.2. クエリパラメータ
Storage.Buckets.Insertのsetメソッドにより、クエリパラメータを追加できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setEnableObjectRetention | Boolean | オブジェクト保持を永続的に有効にするか |
| setPredefinedAcl | String | バケットに定義するアクセス制御リスト(ACL)の定義 |
| setPredefinedDefaultObjectAcl | String | バケットに定義するデフォルトのアクセス制御リスト(ACL)の定義 |
| setProjection | String | 設定するプロパティのセット "full"(全てのプロパティ)、"noAcl"(ACL以外の全てのプロパティ) |
アクセス制御リスト(ACL)の定義
| 定義値 | 内容 |
|---|---|
| authenticatedRead | プロジェクトチームの所有者がOWNERアクセス権を取得し、アクセス権allAuthenticatedUsersを取得 |
| private | プロジェクトチームの所有者がOWNERアクセス権を取得 |
| projectPrivate | プロジェクトチームのメンバーは、それぞれの役割に応じてアクセス権を取得 |
| publicRead | プロジェクトチームの所有者がOWNERアクセス権を取得し、 アクセス権allUsersを取得 |
| publicReadWrite | プロジェクトチームの所有者がOWNERアクセス権を取得し、アクセス権allUsersを取得 |
1.2.3. リクエストボディ
Storage.Bucketsのsetメソッドにより、リクエストボディを追加できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setName | String | 【生成の場合のみ】 【必須】バケットの名前 |
| setAcl | List<BucketAccessControl> | 【上書きの場合は必須】 バケットのアクセス制御 【Bucket.IamConfiguration.UniformBucketLevelAccess.setEnabled(false)の場合のみ】 |
| setAutoclass | Bucket.Autoclass | バケットのAutoclass構成 |
| setBilling | Bucket.Billing | バケットの課金構成 |
| setCors | List<Bucket.Cors> | バケットのCross-OriginResourceSharing(CORS)構成 |
| setCustomPlacementConfig | Bucket.CustomPlacementConfig | 【生成の場合のみ】 バケットのカスタムロケーション構成 |
| setDefaultEventBasedHold | Boolean | eventBasedHoldを自動的に適用するか |
| setDefaultObjectAcl | List<ObjectAccessControl> | ACLが提供されていない場合に新しいオブジェクトに適用されるデフォルトのアクセス制御 【Bucket.IamConfiguration.UniformBucketLevelAccess.setEnabled(false)の場合のみ】 |
| setEncryption | Bucket.Encryption | バケットの暗号化構成 |
| setIamConfiguration | Bucket.IamConfiguration | バケットのIAM構成 |
| setLabels | Map<String,String> | ユーザーが指定したバケットラベル キー:バケットID |
| setLifecycle | Bucket.Lifecycle | バケットのライフサイクル構成 |
| setLocation | String | 【生成の場合のみ】 バケットの場所 |
| setLogging | Bucket.Logging | バケットのログ構成 |
| setRetentionPolicy | Bucket.RetentionPolicy | バケットの保持ポリシー |
| setRpo | String | バケットのリージョン間レプリケーションの目標復旧ポイント "DEFAULT"(デフォルトのレプリケーション)、"ASYNC_TURBO"(ターボ レプリケーション) |
| setSoftDeletePolicy | Bucket.SoftDeletePolicy | バケットの論理的な削除ポリシー |
| setStorageClass | String | バケットのデフォルトのストレージクラス |
| setVersioning | Bucket.Versioning | バケットのバージョン管理構成 |
| setWebsite | Bucket.Website | バケットのWebサイト構成 |
BucketAccessControl(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setId | String | アクセス制御エントリID |
| setBucket | String | バケットの名前 |
| setKind | String | リソースの種類 固定文字列:"storage#bucketAccessControl" |
| setDomain | String | エンティティに関連付けられているドメイン |
| setEmail | String | エンティティに関連付けられているメールアドレス |
| setEntity | String | 権限を保持するエンティティ 次のいずれかの形式 user-{email} group-{groupId} group-{email} domain-{domain} project-{team-projectId} allUsers allAuthenticatedUsers |
| setEntityId | String | エンティティID |
| setEtag | String | アクセス制御エントリのHTTPエンティティタグ |
| setProjectTeam | BucketAccessControl.ProjectTeam | エンティティに関連付けられているプロジェクトチーム |
| setRole | String | エンティティのアクセス許可 "OWNER"、"READER"、"WRITER" |
| setSelfLink | String | このアクセス制御エントリへのリンク |
BucketAccessControl.ProjectTeam(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setProjectNumber | String | プロジェクト番号 |
| setTeam | String | チーム役割 "editors"、"owners"、"viewers" |
Bucket.Autoclass(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setEnabled | Boolean | Autoclassが有効か |
| setTerminalStorageClass | String | オートクラスが有効なバケット内のオブジェクトがアクセスされなかった場合に遷移するストレージクラス |
Bucket.Billing(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setRequesterPays | Boolean | リクエスターの支払いが有効か |
Bucket.Cors(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setMaxAgeSeconds | Integer | プリフライト応答で使用されるAccess-Control-Max-Ageヘッダーで返される値(秒単位) |
| setMethod | List<String> | 応答ヘッダーメソッド |
| setOrigin | List<String> | CORS応答ヘッダーを受信できるオリジンのリスト |
| setResponseHeader | List<String> | HTTPヘッダーのリスト |
Bucket.CustomPlacementConfig(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setDataLocations | List<String> | デュアルリージョン バケットを構成するリスト |
ObjectAccessControl(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setKind | String | リソースの種類 固定文字列:"storage#objectAccessControl" |
| setDomain | String | エンティティに関連付けられているドメイン |
| setEmail | String | エンティティに関連付けられているメールアドレス |
| setEntity | String | 権限を保持するエンティティ 次のいずれかの形式 user-{email} group-{groupId} group-{email} domain-{domain} project-{team-projectId} allUsers allAuthenticatedUsers |
| setEntityId | String | エンティティID |
| setEtag | String | アクセス制御エントリのHTTPエンティティタグ |
| setProjectTeam | ObjectAccessControl.ProjectTeam | エンティティに関連付けられているプロジェクトチーム |
| setRole | String | エンティティのアクセス許可 "OWNER"、"READER"、"WRITER" |
ObjectAccessControl.ProjectTeam(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setProjectNumber | String | プロジェクト番号 |
| setTeam | String | チーム役割 "editors"、"owners"、"viewers" |
Bucket.Encryption(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setDefaultKmsKeyName | String | オブジェクトの暗号化に使用されるCloud KMS Key |
Bucket.IamConfiguration(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setPublicAccessPrevention | String | バケットのパブリック アクセス防止"inherited"ステータス |
| setUniformBucketLevelAccess | Bucket.IamConfiguration.UniformBucketLevelAccess | バケットの均一なバケットレベルのアクセス 構成 |
Bucket.IamConfiguration.UniformBucketLevelAccess(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setEnabled | Boolean | バケットが均一なバケットレベルのアクセスを使用するか |
Bucket.Lifecycle(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setRule | List<Bucket.Lifecycle.Rule> | ライフサイクル管理ルール |
Bucket.Lifecycle.Rule(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setAction | List<Bucket.Lifecycle.Rule.Action> | 実行するライフサイクルアクション |
| setCondition | Bucket.Lifecycle.Rule.Condition | アクションが実行される条件 |
Bucket.Lifecycle.Rule.Action(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setStorageClass | String | 新しいストレージクラス |
| setType | String | アクションのタイプ |
Bucket.Lifecycle.Rule.Condition(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setAge | Integer | オブジェクトの経過時間 |
| setCreatedBefore | DateTime | UTCで指定された日付の午前0時より前にオブジェクトが作成された時刻 |
| setCustomTimeBefore | DateTime | オブジェクトのメタデータがこのライフサイクル条件で使用される日付よりも前の日付に設定された時刻 |
| setDaysSinceCustomTime | Integer | オブジェクトに設定されたユーザー指定のタイムスタンプから経過した日数 |
| setDaysSinceNoncurrentTime | Integer | オブジェクトの非現行タイムスタンプから経過した日数 |
| setIsLive | Boolean | オブジェクトのライブバージョンと一致しているか |
| setMatchesPrefix | List<String> | オブジェクトの接頭辞 |
| setMatchesSuffix | List<String> | オブジェクトの接尾辞 |
| setMatchesStorageClass | List<String> | ストレージクラスを持つオブジェクト |
| setNoncurrentTimeBefore | DateTime | 非最新になったオブジェクトの時刻 |
| setNumNewerVersions | Integer | 新しいバージョン |
Bucket.Logging(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setLogBucket | String | 現在のバケットのログを配置する宛先バケット |
| setLogObjectPrefix | String | ログオブジェクト名のプレフィックス |
Bucket.RetentionPolicy(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setRetentionPeriod | Long | バケット内のオブジェクトを保持し、削除、置換、または非最新にすることができない期間(秒単位) |
Bucket.SoftDeletePolicy(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setEffectiveTime | DateTime | 論理的な削除ポリシーが有効になる日時 |
| setRetentionDurationSeconds | Long | 論理的に削除されたオブジェクトが保持され、完全に削除できない期間(秒単位) |
Bucket.Versioning(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setEnabled | Boolean | このバケットのバージョン管理が完全に有効か |
Bucket.Website(Set)
| メソッド | 引数 | 説明 |
|---|---|---|
| setMainPageSuffix | String | サフィックス |
| setNotFoundPage | String | オブジェクトが欠落している場合の名前付きオブジェクト |
ストレージクラス
| 定義値 | ストレージクラス | 最小保存期間 | 回収料金 | 通常の月間可用性 |
|---|---|---|---|---|
| STANDARD | 標準ストレージ | なし | なし | マルチリージョンおよびデュアルリージョンで > 99.99% 地域では 99.99% |
| NEARLINE | ニアラインストレージ | 30日 | あり | マルチリージョンおよびデュアルリージョンで 99.95% 地域では99.9% |
| COLDLINE | コールドラインストレージ | 90日 | あり | マルチリージョンおよびデュアルリージョンで 99.95% 地域では99.9% |
| ARCHIVE | アーカイブストレージ | 365日 | あり | マルチリージョンおよびデュアルリージョンで 99.95% 地域では99.9% |
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. バケットを上書き
指定したバケットを上書きします。
3. バケットを更新と違うところは、
指定した存在するバケットを新しいバケットに置き換えます。
2.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL
StorageScopes.DEVSTORAGE_READ_WRITE
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。
2.2. 実行
バケットのアクセス制御(ACL)の指定は必須です。
public static void main(String[] args) throws Exception{
Storage storage = getStorage();
Storage.Buckets buckets = storage.buckets();
Bucket content = new Bucket();
content.setAcl(new ArrayList<>());
Storage.Buckets.Update update = buckets.update("バケットID", content);
Bucket res = update.execute();
System.out.println(res);
}
2.2.1. HTTPリクエスト
PUT: https://storage.googleapis.com/storage/v1/b/{バケットID}
が実行されます。
2.2.2. クエリパラメータ
Storage.Buckets.Updateのsetメソッドにより、クエリパラメータを追加できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setIfMetagenerationMatch | Long | メタ世代番号(metageneration)と一致する場合のみ設定を反映 |
| setIfMetagenerationNotMatch | Long | メタ世代番号(metageneration)と一致しない場合のみ設定を反映 |
| setPredefinedAcl | String | バケットに定義するアクセス制御リスト(ACL)の定義 |
| setPredefinedDefaultObjectAcl | String | バケットに定義するデフォルトのアクセス制御リスト(ACL)の定義 |
| setProjection | String | 設定するプロパティのセット "full"(全てのプロパティ)、"noAcl"(ACL以外の全てのプロパティ) |
2.2.3. リクエストボディ
Bucketのsetメソッドにより、リクエストボディを追加できます。
1.2.3. リクエストボディと同じです。
2.3. レスポンスの内容
Bucket
1.3. レスポンスの内容(Bucket)と同じです。
3. バケットを更新
指定したバケットのメタデータを更新します。
2. バケットを上書きと違うところは、
指定したバケットのメタデータのみを更新します。
3.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL
StorageScopes.DEVSTORAGE_READ_WRITE
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。
3.2. 実行
public static void main(String[] args) throws Exception{
Storage storage = getStorage();
Storage.Buckets buckets = storage.buckets();
Bucket content = new Bucket();
//更新内容を設定します。
Storage.Buckets.Patch patch = buckets.patch("バケットID", content);
Bucket res = patch.execute();
System.out.println(res);
}
3.2.1. HTTPリクエスト
PATCH: https://storage.googleapis.com/storage/v1/b/{バケットID}
が実行されます。
3.2.2. クエリパラメータ
Storage.Buckets.Patchのsetメソッドにより、クエリパラメータを追加できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setIfMetagenerationMatch | Long | メタ世代番号(metageneration)と一致する場合のみ設定を反映 |
| setIfMetagenerationNotMatch | Long | メタ世代番号(metageneration)と一致しない場合のみ設定を反映 |
| setPredefinedAcl | String | バケットに定義するアクセス制御リスト(ACL)の定義 |
| setPredefinedDefaultObjectAcl | String | バケットに定義するデフォルトのアクセス制御リスト(ACL)の定義 |
| setProjection | String | 設定するプロパティのセット "full"(全てのプロパティ)、"noAcl"(ACL以外の全てのプロパティ) |
3.2.3. リクエストボディ
Bucketのsetメソッドにより、リクエストボディを追加できます。
1.2.3. リクエストボディと同じです。
3.3. レスポンスの内容
Bucket
1.3. レスポンスの内容(Bucket)と同じです。
4. 空のバケットを削除
指定した空のバケットを削除します。
このAPIで削除できるのはバケットが空の場合のみです。
バケットが空ではない場合は例外が発生します。
4.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL
StorageScopes.DEVSTORAGE_READ_WRITE
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。
4.2. 実行
public static void main(String[] args) throws Exception{
Storage storage = getStorage();
Storage.Buckets buckets = storage.buckets();
Storage.Buckets.Delete delete = buckets.delete("バケットID");
delete.execute();
}
4.2.1. HTTPリクエスト
DELETE: https://storage.googleapis.com/storage/v1/b/{バケットID}
が実行されます。
4.2.2. クエリパラメータ
Storage.Buckets.Deleteのsetメソッドにより、クエリパラメータを追加できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setIfMetagenerationMatch | Long | メタ世代番号(metageneration)と一致する場合のみ削除する |
| setIfMetagenerationNotMatch | Long | メタ世代番号(metageneration)と一致しない場合のみ削除する |
4.2.3. リクエストボディ
リクエストボディはありません。
4.3. レスポンスの内容
レスポンスはありません。
削除に失敗した場合は例外が発生します。
おしまい。。