このページでは、Cloud Storage オブジェクトを 1 つのオブジェクトにまとめる方法について説明します。作成リクエストは 1~32 個のオブジェクトを受け取り、新しい複合オブジェクトを作成します。複合オブジェクトは、リクエストで指定されたソース オブジェクトを連結したものです。
オブジェクトを作成する場合は、次の点に注意してください。
- ソース オブジェクトは作成処理の影響を受けません。一時的なものである場合は、作成が正常に完了したら削除する必要があります。
- 一時オブジェクトには必ず Standard Storage を使用してください。他のストレージ クラスには早期削除料金が適用されます。
必要なロール
オブジェクトの作成に必要な権限を取得するには、バケットに対する Storage オブジェクト ユーザー(roles/storage.objectUser
)IAM ロールを付与するよう管理者に依頼してください。この事前定義ロールには、オブジェクトの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
storage.objects.create
storage.objects.delete
- この権限は、作成するオブジェクトに、バケット内にすでに存在するオブジェクトと同じ名前を付ける場合にのみ必要です。
storage.objects.get
storage.objects.list
- この権限は、Google Cloud CLI コマンドで個別に各オブジェクトを一覧表示することなく、ワイルドカードを使用して共通の接頭辞を持つオブジェクトを作成する場合にのみ必要です。
作成するオブジェクトの保持構成を設定する場合は、storage.objects.setRetention
権限も必要です。この権限を取得するには、Storage オブジェクト ユーザー(roles/storage.objectUser
)ロールの代わりに Storage オブジェクト管理者(roles/storage.objectAdmin
)ロールを付与するように管理者に依頼してください。
これらの権限は、他の事前定義ロールやカスタムロールを使用して取得することもできます。
バケットに対するロールの付与については、バケットで IAM を使用するをご覧ください。
複合オブジェクトを作成する
コマンドライン
gcloud storage objects compose
コマンドを使用します。
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/COMPOSITE_OBJECT_NAME
ここで
BUCKET_NAME
は、ソース オブジェクトを含むバケットの名前です。SOURCE_OBJECT_1
とSOURCE_OBJECT_2
は、オブジェクト作成で使用するソース オブジェクトの名前です。COMPOSITE_OBJECT_NAME
は、オブジェクト作成の結果に付ける名前です。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。次の情報が含まれる JSON ファイルを作成します。
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" } }
ここで
SOURCE_OBJECT_1
とSOURCE_OBJECT_2
は、オブジェクト作成で使用するソース オブジェクトの名前です。COMPOSITE_OBJECT_CONTENT_TYPE
は、結果として得られる複合オブジェクトの Content-Type です。
cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/COMPOSITE_OBJECT_NAME/compose"
ここで
JSON_FILE_NAME
は、前の手順で作成したファイルの名前です。BUCKET_NAME
は、ソース オブジェクトを含むバケットの名前です。COMPOSITE_OBJECT_NAME
は、オブジェクト作成の結果に付ける名前です。
成功した場合、レスポンスは結果として得られる複合オブジェクトのオブジェクト リソースです。
XML API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。次の情報が含まれる XML ファイルを作成します。
<ComposeRequest> <Component> <Name>SOURCE_OBJECT_1</Name> </Component> <Component> <Name>SOURCE_OBJECT_2</Name> </Component> </ComposeRequest>
ここで
SOURCE_OBJECT_1
とSOURCE_OBJECT_2
は、オブジェクト作成で使用するソース オブジェクトの名前です。
cURL
を使用して、PUT
Object リクエストとcompose
クエリ文字列パラメータを含めた XML API を呼び出します。curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: COMPOSITE_OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/BUCKET_NAME/COMPOSITE_OBJECT_NAME?compose"
ここで
XML_FILE_NAME
は、前の手順で作成したファイルの名前です。COMPOSITE_OBJECT_CONTENT_TYPE
は、結果として得られる複合オブジェクトの Content-Type です。BUCKET_NAME
は、ソース オブジェクトを含むバケットの名前です。COMPOSITE_OBJECT_NAME
は、オブジェクト作成の結果に付ける名前です。
成功した場合は、空のレスポンス本文が返されます。
次のステップ
- オブジェクト作成の詳細を確認する。
- リクエストの前提条件を満たして競合状態を防ぐ方法について学習する。