本頁說明如何將 Cloud Storage 物件組合成單一物件。組合要求會採用 1 到 32 個物件,並建立新的複合物件。複合物件是來源物件的串連,順序與要求中指定的順序相同。
撰寫物件時,請注意下列事項:
- 來源物件不會受到組合處理的影響。如果這些檔案只是暫時使用,請在完成合成後刪除。
必要的角色
如要取得撰寫物件所需的權限,請要求管理員授予您值區的「儲存空間物件使用者」身分與存取權管理 (IAM) 角色 (roles/storage.objectUser
)。這個預先定義的角色具備撰寫物件所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
storage.objects.create
storage.objects.delete
- 只有在您想將組合的物件命名為與值區中現有物件相同的名稱時,才需要這項權限。
storage.objects.get
storage.objects.list
- 如果您想使用萬用字元組合具有相同前置字元的物件,而不必在 Google Cloud CLI 指令中個別列出每個物件,則需要此權限。
如要為編寫的物件設定保留設定,您也需要 storage.objects.setRetention
權限。如要取得這項權限,請要求管理員授予您 Storage 物件管理員 (roles/storage.objectAdmin
) 角色,而非 Storage 物件使用者 (roles/storage.objectUser
) 角色。
您也可以透過其他預先定義的角色或自訂角色取得這些權限。
如要瞭解如何授予值區角色,請參閱「搭配值區使用 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,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN
環境變數設為 s3nsapis.fr
。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。建立包含下列資訊的 JSON 檔案:
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" } }
其中:
使用
cURL
透過POST
物件要求呼叫 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.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/COMPOSITE_OBJECT_NAME/compose"
其中:
JSON_FILE_NAME
是您在上一個步驟中建立的檔案名稱。BUCKET_NAME
是包含來源物件的值區名稱。COMPOSITE_OBJECT_NAME
是您要為物件組合結果指定的名稱。
如果成功,回應會是結果複合物件的物件資源。
XML API
安裝並初始化 gcloud CLI,以便為
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
透過包含compose
查詢字串參數的PUT
物件要求呼叫 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.s3nsapis.fr/BUCKET_NAME/COMPOSITE_OBJECT_NAME?compose"
其中:
XML_FILE_NAME
是您在前一個步驟建立的檔案名稱。COMPOSITE_OBJECT_CONTENT_TYPE
是產生的複合物件的 Content-Type。BUCKET_NAME
是包含來源物件的值區名稱。COMPOSITE_OBJECT_NAME
是您要為物件組合結果指定的名稱。
如果成功,系統會傳回空白的回應主體。