本頁說明如何建立、查看、列出、取消及刪除 儲存空間批次作業工作。本文也會說明如何搭配儲存空間批次作業使用 Cloud 稽核記錄。
事前準備
如要建立及管理儲存空間批次作業工作,請完成下列各節的步驟。
設定 Storage Intelligence
如要建立及管理儲存空間批次作業工作,請在要執行工作的 bucket 上設定 Storage Intelligence。
啟用 Storage 批次作業 API
啟用 Storage 批次作業 API。
gcloud services enable storagebatchoperations.googleapis.com
建立資訊清單
如要使用資訊清單進行物件選取,請建立資訊清單檔案。 使用資訊清單是選取要在儲存空間批次作業工作中處理的物件的方法之一。
建立儲存空間批次作業工作
本節說明如何建立儲存空間批次作業工作。
如要取得建立 Storage 批次作業工作所需的權限,請要求管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要執行批次作業物件的 bucket 名稱。
系統會開啟「Bucket details」(bucket 詳細資料) 頁面,並選取「Objects」(物件) 分頁標籤。
- 按一下「建立批次作業」。
- 在「選取作業」窗格中,選擇作業類型:
- 管理物件保留:選取「暫時性保留」或「依據事件的訴訟保留」。詳情請參閱物件訴訟保留。
- 更新物件中繼資料:如要新增物件中繼資料,請按照下列步驟操作:
- 如要新增自訂中繼資料,請完成下列步驟:
- 在「Key」欄位中輸入金鑰名稱。
- 在「Value」(值) 欄位中,輸入該鍵的值。
- 選用:按一下「+ 新增項目」,新增更多鍵/值組合。
- 如要更新固定鍵中繼資料,請完成下列步驟:
- 如要展開「Update fixed-key metadata」(更新固定鍵中繼資料) 專區,請按一下 展開箭頭。
- 在「選取一或多項要更新的中繼資料」清單中,選取要編輯的中繼資料項目。
- 如要新增自訂中繼資料,請完成下列步驟:
- 更新/輪替加密金鑰:如要使用或更新物件的加密金鑰,請按照下列步驟操作:
- 在「選取 Cloud KMS 金鑰」清單中,選取客戶自行管理的加密金鑰 (CMEK)。
- 選用:選取「切換專案」,從其他專案挑選金鑰,或選取「手動輸入金鑰」填寫詳細資料。
- 刪除物件:如要刪除物件,請按照下列步驟操作:
- 確認是否已啟用物件版本管理功能。
如果已啟用物件版本管理功能,請選擇下列其中一個刪除選項:
- 選取「刪除物件的所有版本」,即可移除使用中和非現行的版本。
- 選取「永久刪除使用中的版本」,即可只移除使用中的版本。
如果未啟用物件版本管理功能,選取刪除的物件會永久刪除。
- 點選「下一步」。
- 在「為作業命名並指定物件」窗格中,執行下列操作:
- 在「名稱」欄位中輸入名稱。
- 選用:在「Description」(說明) 欄位中輸入說明。
- 在「指定物件」部分中,定義處理值區物件的條件。選擇下列其中一個選項:
- 選取所有物件:包括 bucket 中的所有物件。
- 透過前置字串篩選器選取物件:如要使用前置字串篩選器定義物件清單,請按照下列步驟操作:
- 在「Enter Prefixes of the objects to be included」(輸入待加入物件的前置字串) 欄位中,輸入前置字串。
- 選用:按一下「+ 新增前置字元」,指定其他前置字元。
- 使用資訊清單 CSV 檔案上傳物件清單:如要使用資訊清單檔案選取物件,請按照下列步驟操作:
- 將資訊清單 CSV 檔案上傳至 bucket。這個檔案必須包含「Bucket 名稱」、「物件鍵」和「版本編號」的標頭。
- 在「選取資訊清單檔案模式」清單中,選擇下列其中一個選項:
- 如果選取「選取 Cloud Storage 中的資訊清單檔案」,請點按「選取 Cloud Storage 中的資訊清單檔案」欄位中的「瀏覽」。在隨即顯示的「選取物件」對話方塊中,找出資訊清單 CSV 檔案,然後按一下「選取」。
- 如果選取「使用萬用字元選取多個資訊清單檔案」,請在「使用萬用字元輸入資訊清單檔案位置」欄位中輸入檔案路徑。例如:
bucket-name/folder/manifest_*。
- 點選「建立」。
指令列
如要為批次作業工作定義物件清單,您可以選擇下列其中一種來源設定:
- 以專案為來源:使用儲存空間分析資料集設定,以專案為目標物件。您可以指定
--insights-dataset-config、--target-project、--bucket-filters和--object-filters等進階篩選參數,不必指定個別值區或前置字元。詳情請參閱「使用進階篩選器建立工作」。 - 以值區做為來源:指定特定值區中的物件。您必須指定下列其中一個標記:
--bucket或--bucket-list定義目標值區。- 資訊清單 CSV 檔案 (
--manifest-location) 或物件前置字串 (--included-object-prefixes),用於定義目標物件。
-
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
如要設定預設專案,請執行
gcloud config set project指令:gcloud config set project PROJECT_ID
其中 PROJECT_ID 是專案 ID。
選用:執行模擬測試工作。執行任何工作前,建議您先以模擬測試模式執行工作,驗證物件選取條件並檢查是否有任何錯誤。模擬測試不會修改任何物件。
在開發環境中,執行加上
--dry-run旗標的gcloud storage batch-operations jobs create指令:gcloud storage batch-operations jobs create DRY_RUN_JOB_NAME \ {--bucket=BUCKET | --bucket-list=BUCKET_LIST} OBJECT_SELECTION_FLAG JOB_TYPE_FLAG \ --dry-run其中:
DRY_RUN_JOB_NAME是儲存空間批次作業模擬測試工作的名稱。
其他參數與實際工作相同。詳情請參閱參數說明。
如要查看模擬測試結果,請參閱「取得儲存空間批次作業工作詳細資料」。
模擬測試成功後,請執行
gcloud storage batch-operations jobs create指令。gcloud storage batch-operations jobs create JOB_NAME \ {--bucket=BUCKET | --bucket-list=BUCKET_LIST} OBJECT_SELECTION_FLAG JOB_TYPE_FLAG其中參數如下:
JOB_NAME是儲存空間批次作業工作的名稱。--bucket:BUCKET是包含要處理物件的 bucket 名稱。--bucket-list:BUCKET_LIST是以半形逗號分隔的清單,列出一或多個包含要處理物件的 bucket 名稱。只要每個 bucket 都已加入儲存空間智慧功能方案,您就可以指定任何專案中的 bucket,最多 1,000 個。OBJECT_SELECTION_FLAG是您需要指定的下列其中一個標記:JOB_TYPE_FLAG是您需要指定的下列其中一個標記,視工作類型而定。--delete-object:刪除一或多個物件。如果 bucket 已啟用物件版本管理功能,現行物件會轉換為非現行狀態,非現行物件則會略過。
如果 bucket 已停用物件版本管理功能,刪除作業會永久刪除物件,並略過非現行物件。
--enable-permanent-object-deletion:永久刪除物件。搭配--delete-object旗標使用這個旗標,即可永久刪除 bucket 中的使用中和非現行物件,無論 bucket 的物件版本管理設定為何。--rewrite-object:更新一或多個物件的客戶自行管理的加密金鑰。您也可以指定storage-class鍵,使用這個旗標變更物件的儲存空間級別。支援的儲存空間類別包括STANDARD、NEARLINE、COLDLINE和ARCHIVE。例如:--rewrite-object=storage-class=NEARLINE。--set-object-acls-from-file:修補物件存取控制清單 (ACL)。提供 JSON 或 YAML 檔案,其中包含要新增或更新的授權,適用於allUsers或allAuthenticatedUsers等實體。例如:--set-object-acls-from-file=acl-updates.yaml或--set-object-acls-from-file=acl-updates.json。更新的 YAML 檔案結構如下:
grants: - entity: allAuthenticatedUsers role: READER remove_entities: - allUsers更新的 JSON 檔案結構如下:
{ "grants": [ { "entity": "allAuthenticatedUsers", "role": "READER" } ], "remove_entities": [ "allUsers" ] }
--put-object-event-based-hold:啟用依據事件的物件訴訟保留。--no-put-object-event-based-hold:停用依據事件的物件保留。--put-object-temporary-hold:啟用暫時性物件保留。--no-put-object-temporary-hold:停用暫時物件保留。以下範例說明如何建立工作,將
manifest.csv中列出的所有物件的Content-Language中繼資料更新為en。gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --put-metadata=Content-Language=en
以下範例說明如何建立工作,將多個值區設為目標,並將
Content-Language更新為en-us:gcloud storage batch-operations jobs create my-job \ --bucket-list=bucket1,bucket2 \ --included-object-prefixes='' \ --put-metadata=Content-Language=en-us
--put-metadata:更新物件中繼資料。指定要修改的物件中繼資料鍵/值組合。您可以將一或多個鍵/值組合指定為清單。您也可以使用--put-metadata標記設定物件保留設定。如要這麼做,請使用Retain-Until和Retention-Mode欄位指定保留參數。例如,假設使用者要求系統 將文字從英文翻譯成法文gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --put-metadata=Retain-Until=RETAIN_UNTIL_TIME,Retention-Mode=RETENTION_MODE
其中:
RETAIN_UNTIL_TIME是日期和時間,採用 RFC 3339 格式,代表物件的保留期限。例如:2025-10-09T10:30:00Z。如要為物件設定保留設定,您必須在包含該物件的值區中啟用保留功能。RETENTION_MODE是保留模式,可為Unlocked或Locked。傳送要求更新
RETENTION_MODE和RETAIN_UNTIL_TIME欄位時,請注意下列事項:- 如要更新物件保留設定,您必須為
RETENTION_MODE和RETAIN_UNTIL_TIME欄位提供非空值;如果只設定其中一個欄位,會導致INVALID_ARGUMENT錯誤。 - 您可以擴充
Unlocked或Locked模式中物件的RETAIN_UNTIL_TIME值。 - 如要執行下列操作,物件保留功能必須處於
Unlocked模式:- 降低
RETAIN_UNTIL_TIME值。 - 移除保留設定。如要移除設定,請為「
RETENTION_MODE」和「RETAIN_UNTIL_TIME」欄位提供空值。
- 降低
- 如果省略
RETENTION_MODE和RETAIN_UNTIL_TIME欄位,保留設定會維持不變。
- 如要更新物件保留設定,您必須為
--clear-all-object-custom-contexts:刪除所有現有的物件內容。以下範例說明如何建立工作,清除
manifest.csv中列出物件的所有物件內容:gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-all-object-custom-contexts
--clear-object-custom-contexts:移除含有特定鍵的脈絡資料。您也可以同時使用--clear-object-custom-contexts旗標和下列任一旗標,更新特定脈絡並移除鍵:--update-object-custom-contexts:提供鍵/值組合的對應關係。以下範例說明如何建立工作,移除鍵為
temp-id的內容,並更新或插入鍵為project-id和cost-center的內容,適用於manifest.csv中列出的所有物件:gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-object-custom-contexts=temp-id \ --update-object-custom-contexts=project-id=project-A,cost-center=engineering
--update-object-custom-contexts-file:提供含有鍵/值組合的 JSON 或 YAML 檔案路徑。下列範例說明如何建立工作,處理
manifest.csv中定義的物件。這項工作會執行下列作業:移除含有
temp-id鍵的所有脈絡資料。使用
/tmp/context_updates.json檔案中定義的project-id和cost-center鍵,更新現有脈絡。
gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-object-custom-contexts=temp-id \ --update-object-custom-contexts-file=/tmp/context_updates.json
其中
/tmp/context_updates.json包含下列物件脈絡資料:{ "project-id": {"value": "project-A"}, "cost-center": {"value": "engineering"} }
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
JSON API
如要為批次作業工作定義物件清單,您可以選擇下列其中一種來源設定:
- 以專案做為來源:使用
projectSource設定,以專案層級的物件為目標。您不必列出個別值區或前置字元,而是指定進階篩選參數,動態查詢儲存空間洞察中繼資料。詳情請參閱「使用進階篩選器建立工作」一文中的 JSON API 分頁。 - 以 bucket 為來源:使用
bucketList設定指定特定 bucket 中的物件。您必須指定目標 bucket,以及資訊清單 CSV 檔案 (manifest_location) 或物件前置字元 (include_object_prefixes)。
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。建立 JSON 檔案,其中包含儲存空間批次作業工作的設定。以下是常見的設定:
{ "Description": "JOB_DESCRIPTION", "BucketList": { "Buckets": [ { "Bucket": "BUCKET_NAME", "Manifest": { "manifest_location": "MANIFEST_LOCATION" } "PrefixList": { "include_object_prefixes": "OBJECT_PREFIXES" } } ] }, "DeleteObject": { "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE } "RewriteObject": { "kms_key":"KMS_KEY_VALUE", "storage_class":"STORAGE_CLASS_VALUE" } "PutMetadata":{ "METADATA_KEY": "METADATA_VALUE", ..., "objectRetention": { "retainUntilTime": "RETAIN_UNTIL_TIME", "mode": "RETENTION_MODE" } } "PutObjectHold": { "temporary_hold": TEMPORARY_HOLD_VALUE, "event_based_hold": EVENT_BASED_HOLD_VALUE }, "updateObjectCustomContext": { "customContextUpdates": { "updates": { "CONTEXT_KEY": { "value": "CONTEXT_VALUE" } }, "keysToClear": ["CONTEXT_KEY_TO_CLEAR"] }, "clearAll": CLEAR_ALL_VALUE }, "SetObjectAcls": { "accessControlsUpdates": { "grants": [ { "entity": "allUsers", "role": "READER" } ], "removeEntities": ["allAuthenticatedUsers"] } }, "dryRun": DRY_RUN_VALUE }
Where:JOB_NAME是儲存空間批次作業工作的名稱。JOB_DESCRIPTION是儲存空間批次作業工作的說明。BUCKET_NAME是包含一或多個要處理物件的值區名稱。如要指定要處理的物件,請在 JSON 檔案中使用下列任一屬性:
視要處理的工作而定,指定下列任一選項:
刪除物件:
"DeleteObject": { "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE }
其中
OBJECT_DELETION_VALUE是要刪除物件的TRUE。更新物件的客戶自行管理的加密金鑰:
"RewriteObject": { "kms_key": KMS_KEY_VALUE }
其中
KMS_KEY_VALUE是要更新的物件 KMS 金鑰值。更新物件的儲存空間級別:
"RewriteObject": { "storage_class": STORAGE_CLASS_VALUE }
其中
STORAGE_CLASS_VALUE是要將物件轉換為的新儲存空間級別。支援的儲存空間類別包括STANDARD、NEARLINE、COLDLINE和ARCHIVE。更新物件中繼資料:
"PutMetadata": { "METADATA_KEY": "METADATA_VALUE", ..., "objectRetention": { "retainUntilTime": "RETAIN_UNTIL_TIME", "mode": "RETENTION_MODE" } }
其中:
METADATA_KEY/VALUE是物件的中繼資料鍵/值組合。您可以指定一或多個配對。RETAIN_UNTIL_TIME是日期和時間,採用 RFC 3339 格式,代表物件的保留期限。例如:2025-10-09T10:30:00Z。如要為物件設定保留設定,您必須在包含該物件的值區中啟用保留功能。RETENTION_MODE是保留模式,可為Unlocked或Locked。傳送要求更新
RETENTION_MODE和RETAIN_UNTIL_TIME欄位時,請注意下列事項:- 如要更新物件保留設定,您必須為
RETENTION_MODE和RETAIN_UNTIL_TIME欄位提供非空值;如果只設定其中一個欄位,會導致INVALID_ARGUMENT錯誤。 - 您可以擴充
Unlocked或Locked模式中物件的RETAIN_UNTIL_TIME值。 - 如要執行下列操作,物件保留功能必須處於
Unlocked模式:- 降低
RETAIN_UNTIL_TIME值。 - 移除保留設定。如要移除設定,請為「
RETENTION_MODE」和「RETAIN_UNTIL_TIME」欄位提供空值。
- 降低
- 如果省略
RETENTION_MODE和RETAIN_UNTIL_TIME欄位,保留設定會維持不變。
- 如要更新物件保留設定,您必須為
-
"PutObjectHold": { "temporary_hold": TEMPORARY_HOLD_VALUE, "event_based_hold": EVENT_BASED_HOLD_VALUE }
其中:
TEMPORARY_HOLD_VALUE可用來啟用或停用暫時性物件保留。值為1時,系統會啟用保留功能;值為2時,系統會停用保留功能。EVENT_BASED_HOLD_VALUE用於啟用或停用事件型物件保留。值為1時,系統會啟用保留功能;值為2時,系統會停用保留功能。
更新物件脈絡資料:
"updateObjectCustomContext": { "customContextUpdates": { "updates": { "CONTEXT_KEY": { "value": "CONTEXT_VALUE" } }, "keysToClear": ["CONTEXT_KEY_TO_CLEAR"] }, "clearAll": CLEAR_ALL_VALUE }
其中:
CONTEXT_KEY是要插入或更新的物件脈絡鍵。CONTEXT_VALUE是鍵的物件內容值。CONTEXT_KEY_TO_CLEAR是要移除的鍵。CLEAR_ALL_VALUE設為true,即可刪除所有現有物件脈絡。
-
"SetObjectAcls": { "accessControlsUpdates": { "grants": [ { "entity": "ENTITY_NAME", "role": "ROLE_NAME" } ], "removeEntities": ["ENTITY_TO_REMOVE"] } }
其中:
ENTITY_NAME是要新增或更新存取權的實體,例如allUsers、allAuthenticatedUsers或特定使用者/群組。ROLE_NAME是要授予的角色。例如READER、OWNER。ENTITY_TO_REMOVE是要移除憑證的實體。
DRY_RUN_VALUE是選用的布林值。設為true,即可在模擬測試模式下執行工作。預設值為false。
使用
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://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?job_id=JOB_NAME"
其中:
JSON_FILE_NAME是 JSON 檔案的名稱。PROJECT_ID是專案 ID 或編號。例如:my-project。JOB_NAME是儲存空間批次作業工作的名稱。
取得 Storage 批次作業工作詳細資料
本節說明如何取得儲存空間批次作業工作的詳細資料。
如要取得查看 Storage 批次作業工作所需的權限,請要求管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
- 在 bucket 清單中,點選與作業相關聯的 bucket 名稱。
- 在「Bucket details」(值區詳細資料) 頁面中,按一下「Operations」(作業) 分頁標籤。
- 在作業清單中,按一下要查看的工作的「Operation ID」(作業 ID)。
- 詳細資料頁面的「總覽」分頁會顯示工作指標,例如發現及處理的物件,以及發生的任何錯誤。
- 在「錯誤摘要」表格中,查看執行失敗的詳細資料,或按一下「在 Cloud Logging 中查看」來查看記錄。
- 如要查看工作設定,請按一下「Configuration」(設定) 分頁標籤。
指令列
-
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
在開發環境中執行
gcloud storage batch-operations jobs describe指令。gcloud storage batch-operations jobs describe JOB_NAME
其中:
JOB_NAME是儲存空間批次作業工作的名稱。模擬執行工作時,輸出內容會包含下列欄位:
totalObjectCount:顯示符合所選條件的物件數量。errorSummaries:列出模擬測試期間發現的任何錯誤,例如權限問題或無效設定。totalBytesFound:顯示受影響物件的總大小。只有在您使用物件前置字串選取物件時,系統才會顯示這個欄位。
如果成功,模擬測試的工作回應會類似以下範例:
bucketList: buckets: - bucket: my-bucket manifest: manifestLocation: gs://my-bucket/manifest.csv completeTime: '2025-10-27T23:56:32Z' counters: totalObjectCount: '4' createTime: '2025-10-27T23:56:22.243528568Z' dryRun: true name: projects/my-project/locations/global/jobs/my-job putMetadata: contentLanguage: en state: SUCCEEDED成功的回應會省略
dryRun欄位,並在counters欄位中傳回下列指標:- 找到的物件總數。
- 使用物件前置字串時找到的位元組總數。
- 物件轉換成功。
- 物件轉換失敗 (如適用)。
- 建立的物件內容 (如適用)。
- 刪除物件結構定義 (如適用)。
- 更新物件脈絡資料 (如適用)。這個計數器會追蹤現有內容鍵的更新。
實際工作執行的回應類似下列範例:
bucketList: buckets: - bucket: my-bucket manifest: manifestLocation: gs://my-bucket/manifest.csv completeTime: '2025-10-31T20:19:42.357826655Z' counters: succeededObjectCount: '4' totalObjectCount: '4' createTime: '2025-10-31T20:19:22.016517077Z' name: projects/my-project/locations/global/jobs/my-job putMetadata: contentLanguage: en state: SUCCEEDED
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL來透過GET儲存空間批次作業工作要求呼叫 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_NAME"
其中:
PROJECT_ID是專案 ID 或編號。例如:my-project。JOB_NAME是儲存空間批次作業工作的名稱。
模擬執行工作時,輸出內容會包含下列欄位:
totalObjectCount:顯示符合所選條件的物件數量。errorSummaries:列出模擬測試期間發現的任何錯誤,例如權限問題或無效設定。totalBytesFound:顯示受影響物件的總大小。只有在您使用物件前置字串選取物件時,系統才會顯示這個欄位。
如果成功,模擬測試的回應會類似以下範例:
{ "name": "projects/my-project/locations/global/jobs/my-job", "description": "dry-run-job", "deleteObject": { "permanent_object_deletion_enabled": true }, "createTime": "2025-10-28T00:26:53.900882459Z", "completeTime": "2025-10-28T00:27:04.101663275Z", "counters": { "totalObjectCount": "5", "totalBytesFound": "203" }, "state": "SUCCEEDED", "bucketList": { "buckets": [ { "bucket": "my-bucket", "prefixList": { "includedObjectPrefixes": [ "" ] } } ] }, "dryRun": true }成功的回應會省略
dryRun欄位,並在counters欄位中傳回下列指標:- 找到的物件總數。
- 使用物件前置字串時找到的位元組總數。
- 物件轉換成功。
- 物件轉換失敗 (如適用)。
- 建立的物件內容 (如適用)。
- 刪除物件結構定義 (如適用)。
更新物件脈絡資料 (如適用)。這個計數器會追蹤現有內容鍵的更新。
實際工作執行的回應類似下列範例:
{ "name": "my-job", "description": "my-delete-objects-job", "deleteObject": { "permanent_object_deletion_enabled": true }, "createTime": "2025-10-28T00:26:53.900882459Z", "completeTime": "2025-10-28T00:27:04.101663275Z", "counters": { "succeededObjectCount: "5" "totalObjectCount": "5", "totalBytesFound": "203" }, "state": "SUCCEEDED", "bucketList": { "buckets": [ { "bucket": "my-bucket", "prefixList": { "includedObjectPrefixes": [ "" ] } } ] } }
列出 bucket 作業
如果工作包含多個值區,您可以查看個別值區作業的進度和狀態。如要列出特定作業對 bucket 執行的作業,請執行 gcloud storage batch-operations bucket-operations list 指令:
gcloud storage batch-operations bucket-operations list --job=JOB_NAME
您也可以使用 --buckets 標記,將清單篩選為特定值區:
gcloud storage batch-operations bucket-operations list --job=JOB_NAME --buckets=BUCKET_NAME_LIST
以下範例說明如何列出工作 my-job 的 bucket1 和 bucket2 作業:
gcloud storage batch-operations bucket-operations list --job=my-job --buckets=bucket1,bucket2
其中:
JOB_NAME是您建立的儲存空間批次作業工作的專屬名稱。例如:my-job。BUCKET_NAME_LIST是以半形逗號分隔的值區名稱清單,名稱之間不得有空格。例如:bucket1,bucket2。
描述 bucket 作業
如要查看特定 bucket 作業的詳細資料,請使用下列任一方法:
使用
gcloud storage batch-operations bucket-operations describe指令並加上作業資源名稱旗標:gcloud alpha storage batch-operations bucket-operations describe BUCKET_OPERATION_RESOURCE_NAME
其中:
BUCKET_OPERATION_RESOURCE_NAME是 bucket 作業的完整資源路徑。例如:projects/my-project/locations/global/jobs/my-job/bucketOperations/bo-1。
使用
gcloud storage batch-operations bucket-operations describe指令,並加上作業 bucket 作業 ID 和工作 ID 旗標:gcloud alpha storage batch-operations bucket-operations describe BUCKET_OPERATION_ID --job=JOB_NAME
其中:
BUCKET_OPERATION_ID是 bucket 作業的 ID。JOB_NAME是您建立的儲存空間批次作業工作的專屬名稱。例如:my-job。
列出 Storage 批次作業工作
本節說明如何列出專案中的 Storage 批次作業工作。
如要取得列出儲存空間批次作業工作所需的權限,請要求管理員授予您專案的「儲存空間管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
- 在 bucket 清單中,點選與作業相關聯的 bucket 名稱。
- 在「Bucket details」(值區詳細資料) 頁面中,按一下「Operations」(作業) 分頁標籤。「作業」頁面會顯示正在執行的作業清單。
指令列
-
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
在開發環境中執行
gcloud storage batch-operations jobs list指令。gcloud storage batch-operations jobs list
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL透過LIST儲存空間批次作業工作要求呼叫 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs"
其中:
PROJECT_ID是專案 ID 或編號。例如:my-project。
取消儲存空間批次作業工作
本節說明如何取消專案中的儲存空間批次作業工作。
如要取得取消儲存空間批次作業所需的權限,請要求管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,按一下與要取消的儲存空間批次作業相關聯的 bucket 名稱。
按一下「作業」分頁標籤。這個分頁會顯示批次作業工作清單。只能取消執行中的工作。
在作業清單中,選取要取消的一或多個工作,然後按一下「取消」。
指令列
-
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
在開發環境中執行
gcloud storage batch-operations jobs cancel指令。gcloud storage batch-operations jobs cancel JOB_NAME
其中:
JOB_NAME是儲存空間批次作業工作的名稱。
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL來透過CANCEL儲存空間批次作業工作要求呼叫 JSON API:curl -X CANCEL \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_NAME"
其中:
PROJECT_ID是專案 ID 或編號。例如:my-project。JOB_NAME是儲存空間批次作業工作的名稱。
刪除儲存空間批次作業工作
本節說明如何刪除儲存空間批次作業工作。
如要取得刪除儲存空間批次作業所需的權限,請要求管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,按一下與要刪除的儲存空間批次作業相關聯的 bucket 名稱。
按一下「作業」分頁標籤。這個分頁會顯示批次作業工作清單。您只能刪除未執行的工作,例如成功、失敗或取消的工作。
在作業清單中,選取要刪除的一或多個工作,然後按一下「刪除」。
指令列
-
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
在開發環境中執行
gcloud storage batch-operations jobs delete指令。gcloud storage batch-operations jobs delete JOB_NAME
其中:
JOB_NAME是儲存空間批次作業工作的名稱。
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL來透過DELETE儲存空間批次作業工作要求呼叫 JSON API:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_NAME"
其中:
PROJECT_ID是專案 ID 或編號。例如:my-project。JOB_NAME是儲存空間批次作業工作的名稱。
使用儲存空間分析資料集建立儲存空間批次作業工作
如要對資料集列出的物件執行批次作業工作,請選取下列其中一個選項:
使用進階篩選器:直接在 Google Cloud CLI 指令中,以專案層級動態篩選物件。
儲存空間分析資料集是根據儲存空間中繼資料的定期時間點快照建立而成。每個快照都有快照時間,顯示擷取中繼資料的時間。使用進階篩選器執行批次工作時,系統會根據這個快照時間決定要處理哪些物件和版本。根據預設,儲存空間批次作業會自動選取最新的快照時間。為避免對過時資料執行作業,如果所選快照超過兩天,系統就會無法建立工作。如要瞭解如何解決這項失敗問題,請參閱「疑難排解儲存空間批次作業問題」。
使用資訊清單檔案:執行 BigQuery 查詢來產生 CSV 資訊清單檔案,然後提供給工作。
以下各節將說明這些方法。
使用進階篩選器
您可以使用一般運算語言 (CEL) 篩選器,根據儲存空間分析資料集中的欄位直接選取物件,不必建立資訊清單檔案。您可以在專案中的多個值區執行工作。使用資料集篩選器選取物件時,儲存空間批次作業會以所選資料集快照中的現有物件為目標。因此,這項工作只會包含在快照時間點同時具有 softDeleteTime 和 timeDeleted 值的物件。NULL
指令列
-
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
執行
gcloud storage batch-operations jobs create指令:gcloud storage batch-operations jobs create JOB_NAME \ {--insights-dataset-config=INSIGHTS_DATASET_CONFIG_RESOURCE_NAME --target-project=TARGET_PROJECT [--bucket-filters=BUCKET_FILTER_CEL] [--object-filters=OBJECT_FILTER_CEL] [--target-locations=TARGET_LOCATIONS] [--target-snapshot-time=TARGET_SNAPSHOT_TIME] | --dry-run-job-id=DRY_RUN_JOB_ID} \ --JOB_TYPE_FLAG其中:
JOB_NAME是儲存空間批次作業工作的名稱。INSIGHTS_DATASET_CONFIG_RESOURCE_NAME:資料集設定的資源名稱。例如:projects/{project-id}/locations/{location-id}/datasetConfigs/{dataset_config_id}。使用--bucket-filters和--object-filters標記前,請務必指定這個參數。TARGET_PROJECT:與目標資源相關聯的專案 ID 或專案編號。BUCKET_FILTER_CEL和OBJECT_FILTER_CEL(選用):用於選取物件的 CEL 篩選運算式。以下是範例:--bucket-filters="name in ['bucket-1', 'bucket-2']"--object-filters="size >= 5000 && name.endsWith('.pdf')"如要瞭解支援的欄位、運算子和函式,請參閱 CEL 篩選器參考資料。
TARGET_LOCATIONS(選用):用於縮小工作範圍的 Cloud Storage 位置清單。例如:us,us-central1,us-east4。使用這個參數排除服務中斷的地點。如果只指定TARGET_LOCATIONS而省略TARGET_SNAPSHOT_TIME,這項工作會自動選擇在所有指定位置的物件和 Bucket 屬性檢視中,成功填入的最新快照時間戳記。TARGET_SNAPSHOT_TIME(選用):要使用的資料集快照世界標準時間戳記,格式為 RFC 3339。例如,2026-05-03T16:00:00Z。這個快照必須存在於值區和物件屬性檢視畫面中。如果您指定這個參數,也必須指定TARGET_LOCATIONS參數。DRY_RUN_JOB_ID:先前執行的模擬執行作業 ID。指定這個參數後,就無法指定任何其他物件選取參數,包括--insights-dataset-config、--target-project、--bucket-filters、--object-filters、--target-locations和--target-snapshot-time。有效工作會直接從試執行工作輪詢所有選取條件。JOB_TYPE_FLAG:要執行的批次作業對應的旗標,例如--put-metadata或--delete-object。
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。建立 JSON 設定檔,指定資料集篩選條件和大量作業設定。例如:
{ "description": "JOB_DESCRIPTION", "projectSource": { "project": "projects/TARGET_PROJECT", "insightsDatasetConfig": "INSIGHTS_DATASET_CONFIG_RESOURCE_NAME", "bucketFilters": { "expression": "BUCKET_FILTER_CEL" }, "objectFilters": { "expression": "OBJECT_FILTER_CEL" }, "snapshotTime": "SNAPSHOT_TIME", "targetLocations": { "locations": ["LOCATION_1", "LOCATION_2"] } }, "deleteObject": { "permanentObjectDeletionEnabled": OBJECT_DELETION_VALUE } }
其中:
JOB_DESCRIPTION是職務的說明。TARGET_PROJECT是與目標物件相關聯的專案 ID 或專案編號。
INSIGHTS_DATASET_CONFIG_RESOURCE_NAME是資料集設定的完整資源名稱 (例如projects/{project-id}/locations/{location-id}/datasetConfigs/{dataset_config_id})。BUCKET_FILTER_CEL是 bucket 的 CEL 篩選運算式。例如,name in ['bucket-1', 'bucket-2']。如要進一步瞭解支援的關鍵字、欄位和運算子,請參閱 CEL 篩選器參考資料。OBJECT_FILTER_CEL是物件的 CEL 篩選運算式。例如:size >= 5000 && name.endsWith('.pdf')。snapshotTime(選用):採用 RFC 3339 格式的特定世界標準時間時間戳記 (例如"2026-05-03T16:00:00Z"),用於指定要使用的資料集快照。所有目標地點的 bucket 和物件資料集檢視畫面中,都必須有這項快照。如果指定這個欄位,也必須指定targetLocations欄位。targetLocations(選用):JSON 物件,指定要篩選工作範圍的 Cloud Storage 位置清單 (例如["us", "us-central1", "us-east4"])。如果特定位置的依附元件發生中斷情形,您可以將工作範圍縮小至特定位置。如果只指定targetLocations而省略snapshotTime,這項工作會自動選擇在所有指定位置的物件和 Bucket 屬性檢視中,成功填入的最新快照時間戳記。OBJECT_DELETION_VALUE是切換永久刪除的布林值。例如:true或false。
使用
cURL傳送POST要求來執行工作:curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ -d @JSON_FILE_NAME \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?job_id=JOB_NAME"其中:
JSON_FILE_NAME是 JSON 檔案的名稱。PROJECT_ID是專案 ID 或編號。例如:my-project。JOB_NAME是儲存空間批次作業工作的名稱。
使用資訊清單檔案
如要取得建立 Storage 批次作業工作所需的權限,請要求管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
使用儲存空間分析資料集建立資訊清單
您可以從 BigQuery 擷取資料,為儲存空間批次作業工作建立資訊清單。如要執行這項操作,請查詢連結的資料集,將結果資料匯出為 CSV 檔案,然後儲存至 Cloud Storage 值區。儲存空間批次作業工作隨後可將這個 CSV 檔案做為資訊清單。
在 BigQuery 中對儲存空間分析資料集檢視畫面執行下列 SQL 查詢,即可擷取名稱為 Temp_Training 的物件,且這些物件的大小超過 1 KiB:
EXPORT DATA OPTIONS( uri=`URI`, format=`CSV`, overwrite=OVERWRITE_VALUE, field_delimiter=',') AS SELECT bucket, name, generation FROM DATASET_VIEW_NAME WHERE bucket = BUCKET_NAME AND name LIKE (`Temp_Training%`) AND size > 1024 * 1024 AND snapshotTime = SNAPSHOT_TIME
其中:
URI是包含資訊清單的值區 URI。例如,gs://bucket_name/path_to_csv_file/*.csv。使用*.csv萬用字元時,BigQuery 會將結果匯出至多個 CSV 檔案。OVERWRITE_VALUE是布林值。如果設為true,匯出作業會覆寫指定位置的現有檔案。DATASET_VIEW_NAME是儲存空間分析資料集檢視區的完整名稱,格式為PROJECT_ID.DATASET_ID.VIEW_NAME。如要找出資料集名稱,請查看連結的資料集。其中:
PROJECT_ID是專案 ID 或編號。例如:my-project。DATASET_ID是資料集名稱。例如:objects-deletion-dataset。VIEW_NAME是資料集檢視區塊的名稱。例如:bucket_attributes_view。
BUCKET_NAME是 bucket 的名稱。例如:my-bucket。SNAPSHOT_TIME是儲存空間分析資料集檢視畫面的快照時間。例如:2024-09-10T00:00:00Z。
使用資訊清單檔案建立儲存空間批次作業工作
如要建立儲存空間批次作業工作,處理資訊清單中包含的物件,請完成下列步驟:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要執行批次作業物件的 bucket 名稱。
系統會開啟「Bucket details」(bucket 詳細資料) 頁面,並選取「Objects」(物件) 分頁標籤。
- 按一下「建立批次作業」。
- 在「選取作業」窗格中,選擇作業類型:
- 管理物件保留:選取「暫時性保留」或「依據事件的訴訟保留」。詳情請參閱物件訴訟保留。
- 更新物件中繼資料:如要新增物件中繼資料,請按照下列步驟操作:
- 如要新增自訂中繼資料,請完成下列步驟:
- 在「Key」欄位中輸入金鑰名稱。
- 在「Value」(值) 欄位中,輸入該鍵的值。
- 選用:按一下「+ 新增項目」,新增更多鍵/值組合。
- 如要更新固定鍵中繼資料,請完成下列步驟:
- 如要展開「Update fixed-key metadata」(更新固定鍵中繼資料) 專區,請按一下 展開箭頭。
- 在「選取一或多項要更新的中繼資料」清單中,選取要編輯的中繼資料項目。
- 如要新增自訂中繼資料,請完成下列步驟:
- 更新/輪替加密金鑰:如要使用或更新物件的加密金鑰,請按照下列步驟操作:
- 在「選取 Cloud KMS 金鑰」清單中,選取客戶自行管理的加密金鑰 (CMEK)。
- 選用:選取「切換專案」,從其他專案挑選金鑰,或選取「手動輸入金鑰」填寫詳細資料。
- 刪除物件:如要刪除物件,請按照下列步驟操作:
- 確認是否已啟用物件版本管理功能。
如果已啟用物件版本管理功能,請選擇下列其中一個刪除選項:
- 選取「刪除物件的所有版本」,即可移除使用中和非現行的版本。
- 選取「永久刪除使用中的版本」,即可只移除使用中的版本。
如果未啟用物件版本管理功能,選取刪除的物件會永久刪除。
- 點選「下一步」。
- 在「為作業命名並指定物件」窗格中,執行下列操作:
- 在「名稱」欄位中輸入名稱。
- 選用:在「Description」(說明) 欄位中輸入說明。
- 在「指定物件」部分中,選取「使用資訊清單 CSV 檔案上傳物件清單」,然後執行下列操作:
- 將資訊清單 CSV 檔案上傳至 bucket。這個檔案必須包含「Bucket 名稱」、「物件鍵」和「版本編號」的標頭。
- 在「選取資訊清單檔案模式」清單中,選擇下列其中一個選項:
- 如果選取「選取 Cloud Storage 中的資訊清單檔案」,請點按「選取 Cloud Storage 中的資訊清單檔案」欄位中的「瀏覽」。在隨即顯示的「選取物件」對話方塊中,找出資訊清單 CSV 檔案,然後按一下「選取」。
- 如果選取「使用萬用字元選取多個資訊清單檔案」,請在「使用萬用字元輸入資訊清單檔案位置」欄位中輸入檔案路徑。例如:
bucket-name/folder/manifest_*。
- 點選「建立」。
指令列
-
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
在開發環境中執行
gcloud storage batch-operations jobs create指令:gcloud storage batch-operations jobs create \ JOB_NAME \ {--bucket=SOURCE_BUCKET | --bucket-list=SOURCE_BUCKET_LIST} \ --manifest-location=URI \ JOB_TYPE_FLAG其中:
JOB_NAME是儲存空間批次作業工作的名稱。SOURCE_BUCKET是包含要處理物件的值區名稱。例如:my-bucket。SOURCE_BUCKET_LIST是以半形逗號分隔的清單,包含一或多個值區名稱,這些值區含有您要處理的物件。例如:bucket1,bucket2。URI是包含資訊清單的值區 URI。例如,gs://bucket_name/path_to_csv_file/*.csv。使用*.csv萬用字元時,BigQuery 會將結果匯出至多個 CSV 檔案。JOB_TYPE_FLAG是下列其中一個標記,視工作類型而定。--delete-object:刪除一或多個物件。--put-metadata:更新物件中繼資料。物件中繼資料會以鍵/值組合的形式儲存。指定要修改的中繼資料鍵/值組合。您可以將一或多個鍵/值組合指定為清單。您也可以使用--put-metadata標記提供物件保留設定。--rewrite-object:更新一或多個物件的客戶自行管理的加密金鑰。您也可以指定storage-class鍵,使用這個旗標變更物件的儲存空間級別。支援的儲存空間級別包括STANDARD、NEARLINE、COLDLINE和ARCHIVE。例如:--rewrite-object=storage-class=NEARLINE。--set-object-acls-from-file:修補物件存取控制清單 (ACL)。提供 JSON 或 YAML 檔案的路徑,其中包含要新增或更新的授權,適用於allUsers或allAuthenticatedUsers等實體。例如:--set-object-acls-from-file=acl-updates.yaml。--put-object-event-based-hold:啟用依據事件的物件訴訟保留。--no-put-object-event-based-hold:停用依據事件的物件保留。--put-object-temporary-hold:啟用暫時性物件保留。--no-put-object-temporary-hold:停用暫時物件保留。
--clear-all-object-custom-contexts:刪除所有現有的物件內容。以下範例說明如何建立工作,清除
manifest.csv中列出物件的所有物件內容:gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-all-object-custom-contexts
--clear-object-custom-contexts:移除含有特定鍵的脈絡資料。您也可以同時使用--clear-object-custom-contexts旗標和下列任一旗標,更新特定脈絡並移除鍵:--update-object-custom-contexts:提供鍵/值組合的對應關係。以下範例說明如何建立工作,移除鍵為
temp-id的內容,並更新或插入鍵為project-id和cost-center的內容,適用於manifest.csv中列出的所有物件:gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-object-custom-contexts=temp-id \ --update-object-custom-contexts=project-id=project-A,cost-center=engineering
--update-object-custom-contexts-file:提供含有鍵/值組合的 JSON 或 YAML 檔案路徑。下列範例說明如何建立工作,處理
manifest.csv中定義的物件。這項工作會執行下列作業:移除含有
temp-id鍵的所有脈絡資料。使用
/tmp/context_updates.json檔案中定義的project-id和cost-center鍵,更新現有脈絡。
gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-object-custom-contexts=temp-id \ --update-object-custom-contexts-file=/tmp/context_updates.json
其中
/tmp/context_updates.json包含下列物件脈絡資料:{ "project-id": {"value": "project-A"}, "cost-center": {"value": "engineering"} }
與 VPC Service Controls 整合
VPC Service Controls 可為儲存空間批次作業資源提供額外的安全防護層。將專案納入服務範圍後,有助於保護資源和服務,避免來自範圍外的要求存取。如要進一步瞭解儲存空間批次作業的 VPC Service Controls 服務範圍詳細資料,請參閱「支援的產品和限制」。
使用 Cloud 稽核記錄查看儲存空間批次作業工作
儲存空間批次作業工作會記錄 Cloud Storage 物件的轉換作業,並儲存在 Cloud Storage 的 Cloud 稽核記錄中。使用 Cloud 稽核記錄與 Cloud Storage 追蹤這些轉換。如要瞭解如何啟用稽核記錄,請參閱「啟用稽核記錄」。在稽核記錄項目中,如果 callUserAgent 中繼資料欄位的值為 StorageBatchOperations,表示轉換作業是由儲存空間批次作業執行。