Cloud Storage API V2(Java)を使用して、
Cloud Storageのバケットの保持ポリシーをロックする方法
についてご紹介します。
バケット保持ポリシーとロック
保持ポリシーとは、バケット内にオブジェクトがアップロードされた後、
そのオブジェクトが削除・変更されないように期間を設定することができる機能です。
保持ポリシーを「ロック」することにより、すべてのユーザーが
設定した保持ポリシーの保持期間を短縮/削除できないようにします。
「ロック」した状態の保持ポリシーを削除したい場合は、
バケット自体を削除するしかありません。
ただし、バケット内にオブジェクトが存在する場合、
保持ポリシーを満たした期間外にならなければ削除することもできません。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う
を参照ください。
No | 目次 | ||
---|---|---|---|
1 | 保持ポリシーをロック | ||
1 | スコープ | ||
2 | 実行 | ||
3 | レスポンスの内容 |
1. 保持ポリシーをロック
指定したバケットの保持ポリシーをロックします。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。
1.2. 実行
バケットIDとメタ世代番号(metageneration)は必須です。
メタ世代番号は、⧉BucketのgetMetageneration()で取得できます。
public static void main(String[] args) throws Exception{
Storage storage = getStorage();
Storage.Buckets buckets = storage.buckets();
Storage.Buckets.LockRetentionPolicy lock = buckets.lockRetentionPolicy("バケットID",メタ世代番号);
Bucket res = lock.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
POST: https://storage.googleapis.com/storage/v1/b/{バケットID}/lockRetentionPolicy
が実行されます。
1.2.2. クエリパラメータ
クエリパラメータはありません。
1.2.3. リクエストボディ
リクエストボディはありません。
1.3. レスポンスの内容
Bucket
⧉[Cloud Storage API(V2)] Javaでバケットを取得する(Bucket)と同じです。
おしまい。。