マネージド フォルダの作成と管理 (original) (raw)
このガイドでは、マネージド フォルダを作成、一覧表示、削除する方法を説明します。
始める前に
マネージド フォルダを作成および管理するには、まず、均一なバケットレベルのアクセスを有効にして、必要な IAM ロールを取得する必要があります。
均一なバケットレベルのアクセスを有効にする
まだ行っていない場合は、均一なバケットレベルのアクセスを有効にします。
必要なロールを取得する
マネージド フォルダの作成および管理に必要な権限を取得するには、バケットに対するストレージ フォルダ管理者(roles/storage.folderAdmin)IAM ロールの付与を管理者に依頼します。
この事前定義ロールには、マネージド フォルダの作成と管理に必要な権限が割り当てられています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
マネージド フォルダを作成および管理するには、次の権限が必要です。
- マネージド フォルダを作成する場合:
storage.managedFolders.create - 新しく作成されたマネージド フォルダを一覧表示して検証する場合:
storage.objects.list - マネージド フォルダを一覧表示する場合:
storage.managedFolders.list - マネージド フォルダを取得する場合:
storage.managedFolders.get - マネージド フォルダを移動する場合:
- ソースバケットに対する
storage.managedFolders.delete - 宛先バケットに対する
storage.managedFolders.create
- ソースバケットに対する
- マネージド フォルダを削除する場合:
storage.managedFolders.delete
バケットに対するロールの付与については、バケットでの IAM ポリシーの設定と管理をご覧ください。
マネージド フォルダを作成する
コンソール
Google Cloud コンソールを使用してマネージド フォルダを作成するには、フォルダまたはシミュレートされたフォルダに対する管理を有効にします。フォルダまたはシミュレートされたフォルダを作成し、フォルダ管理を有効にするための手順は次のとおりです。
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
[バケット] に移動 - バケットのリストで、マネージド フォルダを作成するバケットの名前をクリックします。
- [バケットの詳細] ページで、[フォルダを作成] をクリックして新しいフォルダを作成します。マネージド フォルダに変換するフォルダがすでに存在する場合は、その他のオプション メニューを使う手順に進みます。
- [名前] フィールドに、フォルダの名前を入力します。命名に関する考慮事項については、マネージド フォルダ名をご覧ください。
- [作成] をクリックします。
新しく作成したフォルダが [フォルダ ブラウザ] ペインに表示されます。 - [フォルダ ブラウザ] ペインで、マネージド フォルダに変換するフォルダの横にあるその他のオプション メニューをクリックし、[アクセス権の編集] をクリックします。
[フォルダ管理を有効にしますか?] ダイアログが表示されます。 - [有効にする] をクリックします。
フォルダがマネージド フォルダに変換されます。[MANAGED_FOLDER_NAMEの権限] ペインが表示され、フォルダの IAM ポリシーがプリンシパルとロール別に表示されます。新しい IAM ポリシーを作成するには、マネージド フォルダに IAM ポリシーを設定するをご覧ください。
コマンドライン
マネージド フォルダを作成するには、gcloud storage managed-folders create コマンドを実行します。
gcloud storage managed-folders create gs://BUCKET_NAME/MANAGED_FOLDER_NAME
各変数の意味は次のとおりです。
BUCKET_NAMEは、マネージド フォルダを作成するバケットの名前です。たとえばmy-bucketです。MANAGED_FOLDER_NAMEは、作成するマネージド フォルダの名前です。たとえばmy-managed-folder/です。
マネージド フォルダが作成されたことを確認するには、gcloud storage managed-folders describe コマンドを実行します。
gcloud storage managed-folders describe gs://BUCKET_NAME/MANAGED_FOLDER_NAME
各変数の意味は次のとおりです。
BUCKET_NAMEは、マネージド フォルダを作成したバケットの名前です。MANAGED_FOLDER_NAMEは、作成したマネージド フォルダの名前です。
クライアント ライブラリ
REST API
JSON API
- gcloud CLI をインストールして初期化します。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。 - cURL を使用して、POST ManagedFolder リクエストで JSON API を呼び出します。
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{ "name": "MANAGED_FOLDER_NAME" }' \
"https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"
各変数の意味は次のとおりです。BUCKET_NAMEは、マネージド フォルダを作成するバケットの名前です。たとえばmy-bucketです。MANAGED_FOLDER_NAMEは、作成するマネージド フォルダの名前です。たとえばmy-managed-folder/です。
マネージド フォルダを一覧表示する
コンソール
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
[バケット] に移動 - [フォルダ ブラウザ] ペインで、ノードの切り替えアイコン を使用して、バケット内のフォルダのリストを開きます。
バケット内のフォルダ、シミュレートされたフォルダ、マネージド フォルダが一覧表示されます。
コマンドライン
マネージド フォルダを一覧表示するには、gcloud storage managed-folders list コマンドを実行します。
gcloud storage managed-folders list gs://BUCKET_NAME
各変数の意味は次のとおりです。
BUCKET_NAMEは、一覧表示するマネージド フォルダを含むバケットの名前です。たとえばmy-bucketです。
バケット名の代わりにフォルダパスを指定することもできます。次に例を示します。
gcloud storage managed-folders list gs://my-bucket/folder/
クライアント ライブラリ
REST API
JSON API
- gcloud CLI をインストールして初期化します。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。 - cURL を使用して、マネージド フォルダの一覧表示リクエストで JSON API を呼び出します。
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders"BUCKET_NAMEは、一覧表示するマネージド フォルダを含むバケットの名前です。たとえばmy-bucketです。
マネージド フォルダのメタデータを取得する
コマンドライン
マネージド フォルダのメタデータを取得するには、gcloud storage managed-folders describe コマンドを実行します。
gcloud storage managed-folders describe gs://BUCKET_NAME/MANAGED_FOLDER_NAME
各変数の意味は次のとおりです。
BUCKET_NAMEは、一覧表示するマネージド フォルダを含むバケットの名前です。たとえばmy-bucketです。MANAGED_FOLDER_NAMEは、メタデータを取得する対象のマネージド フォルダの名前です。
クライアント ライブラリ
REST API
JSON API
- gcloud CLI をインストールして初期化します。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。 - cURL を使用して、マネージド フォルダの取得リクエストで JSON API を呼び出します。
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME"
各変数の意味は次のとおりです。BUCKET_NAMEは、取得するマネージド フォルダを含むバケットの名前です。たとえばmy-bucketです。MANAGED_FOLDER_NAMEは、パスとして表されるマネージド フォルダの名前です。たとえばexample-dir/です。マネージド フォルダがネストされている場合は、マネージド フォルダのパスに含まれるスラッシュ(/)文字をエスケープする必要があります。たとえばexample-dir1%2Fexample-dir2です。
マネージド フォルダを移動する
コンソール
- 転送先のバケットに新しいマネージド フォルダを作成します。
- 転送元バケットの元のマネージド フォルダから転送先バケットの新しいマネージド フォルダに IAM ポリシーをコピーします。
- 転送元バケットの元のマネージド フォルダから転送先バケットの新しいマネージド フォルダにオブジェクトをコピーします。
- 転送元バケットから元のマネージド フォルダを削除します。
コマンドライン
マネージド フォルダとマネージド フォルダに含まれるオブジェクトを移動するには、--include-managed-folders オプションを指定して gcloud storage mv コマンドを実行します。
gcloud storage mv --include-managed-folders gs://SOURCE_BUCKET_NAME/MANAGED_FOLDER_NAME gs://DESTINATION_BUCKET_NAME/MANAGED_FOLDER_NAME
各変数の意味は次のとおりです。
SOURCE_BUCKETは、元のバケットの名前です。たとえばmy-source-bucketです。DESTINATION_BUCKETは、マネージド フォルダの移動先となるバケットの名前です。たとえばmy-destination-bucketです。MANAGED_FOLDER_NAMEは、移動するマネージド フォルダの名前です。たとえばmy-managed-folder/です。
REST API
JSON API
マネージド フォルダを別のバケットに移動するには、次の操作を行います。
- 転送先のバケットに新しいマネージド フォルダを作成します。
- 転送元バケットの元のマネージド フォルダから転送先バケットの新しいマネージド フォルダに IAM ポリシーをコピーします。
- 転送元バケットの元のマネージド フォルダから転送先バケットの新しいマネージド フォルダにオブジェクトをコピーします。
- 転送元バケットから元のマネージド フォルダを削除します。
マネージド フォルダを削除する
コンソール
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
[バケット] に移動 - バケットのリストで、削除するマネージド フォルダを含むバケットの名前をクリックします。
- [バケットの詳細] ページで、削除するマネージド フォルダの横にあるその他のオプション アイコン をクリックします。
- [フォルダを削除] をクリックします。
- マネージド フォルダの削除を確定するには、[削除] フィールドに「**
DELETE**」と入力します。 - [削除] をクリックします。
Cloud Storage バケットからマネージド フォルダとそのコンテンツ(保存されているオブジェクトやその他のマネージド フォルダを含む)が削除されます。
コマンドライン
マネージド フォルダとマネージド フォルダに含まれるオブジェクトを削除するには、gcloud storage rm コマンドを実行します。
gcloud storage rm -r gs://BUCKET_NAME/MANAGED_FOLDER_NAME
各変数の意味は次のとおりです。
BUCKET_NAMEは、削除するマネージド フォルダを含むバケットの名前です。たとえばmy-bucketです。MANAGED_FOLDER_NAMEは、削除するマネージド フォルダの名前です。たとえばmy-managed-folder/です。
クライアント ライブラリ
REST API
JSON API
マネージド フォルダを削除する前に、マネージド フォルダ内のオブジェクトを削除する必要があります。
- gcloud CLI をインストールして初期化します。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。 - cURL を使用して、DELETE ManagedFolder リクエストで JSON API を呼び出します。
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME"
各変数の意味は次のとおりです。BUCKET_NAMEは、削除するマネージド フォルダを含むバケットの名前です。たとえばmy-bucketです。MANAGED_FOLDER_NAMEは、削除するマネージド フォルダの名前です。たとえばmy-managed-folder/です。
デフォルトでは、マネージド フォルダを削除する前にフォルダを空にする必要があります。空ではないマネージド フォルダを削除する場合は、リクエストにallowNonEmpty=trueをクエリ パラメータとして含めます。
トラブルシューティング
マネージド フォルダの作成と管理については、トラブルシューティング ページをご覧ください。