LoginSignup
0
0

[Cloud Storage API(V2)] Javaで管理フォルダ(マネージドフォルダ)を生成・削除する

Posted at

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.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.ManagedFolders folder = storage.managedFolders();
    
    ManagedFolder content = new ManagedFolder();
    content.setName("管理フォルダの名前");
    Storage.ManagedFolders.Insert insert = folder.insert("バケットID",content);
    
    ManagedFolder res = insert.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

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

1.2.2. クエリパラメータ

クエリパラメータはありません。

1.2.3. リクエストボディ

ManagedFolderのsetメソッドにより、リクエストボディを追加できます。

メソッド 引数 説明
setName String 【必須】管理フォルダの名前

1.3. レスポンスの内容

ManagedFolder

メソッド 戻り値 説明
getId String 管理フォルダID
getName String 管理フォルダ名
getKind String リソースの種類
固定文字列:"storage#managedFolder"
getSelfLink String 管理フォルダーURL
getBucket String 管理フォルダーが含まれるバケットの名前
getCreateTime DateTime 管理フォルダーが作成された時刻
getUpdateTime DateTime 管理フォルダーが更新された時刻
getMetageneration Long メタ世代番号(metageneration)

2. 管理フォルダを削除

指定した管理フォルダ(マネージドフォルダ)を削除します。

指定した空の管理フォルダを削除します。

このAPIで削除できるのは管理フォルダが空の場合のみです。
管理フォルダが空ではない場合は例外が発生します。

空ではない管理フォルダを削除する場合は、
Storage.ManagedFolders.Delete.set("allowNonEmpty", true);
を設定してexecute()すると正常にAPIは実行されます。
ただし、管理フォルダ扱いではなくなるだけなので、オブジェクト自体は残ります。

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. 実行

public static void main(String[] args) throws Exception{
    Storage storage = getStorage();
    Storage.ManagedFolders folder = storage.managedFolders();
    
    Storage.ManagedFolders.Delete delete = folder.delete("バケットID","管理フォルダ名");
    
    delete.execute();
}

2.2.1. HTTPリクエスト

DELETE: https://storage.googleapis.com/storage/v1/b/{バケットID}/managedFolders/{管理フォルダ名}
が実行されます。

2.2.2. クエリパラメータ

クエリパラメータはありません。。

2.3. レスポンスの内容

レスポンスはありません。
削除に失敗した場合は例外が発生します。



おしまい。。
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