本頁說明如何建立、查看、列出、取消及刪除 儲存空間批次作業工作。本文也會說明如何搭配使用 Cloud 稽核記錄與儲存空間批次作業工作。
事前準備
如要建立及管理儲存空間批次作業工作,請完成下列各節的步驟。
設定 Storage Intelligence
如要建立及管理儲存空間批次作業工作,請在要執行工作的 bucket 上設定 Storage Intelligence。
啟用 API
啟用 Storage 批次作業 API。
gcloud services enable storagebatchoperations.googleapis.com
建立資訊清單
如要使用資訊清單進行物件選取,請建立資訊清單檔案。 使用資訊清單是選取要在儲存空間批次作業工作中處理物件的方法之一。
建立儲存空間批次作業工作
本節說明如何建立儲存空間批次作業工作。
如要取得建立 Storage 批次作業工作所需的權限,請要求系統管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要執行批次作業物件的 bucket 名稱。
系統會開啟「Bucket details」(值區詳細資料) 頁面,並選取「Objects」(物件) 分頁標籤。
- 按一下「建立批次作業」。
- 在「選取作業」窗格中,選擇作業類型:
- 管理物件保留:選取「暫時性保留」或「依據事件的訴訟保留」。詳情請參閱物件訴訟保留。
- 更新物件中繼資料:如要新增物件中繼資料,請按照下列步驟操作:
- 如要新增自訂中繼資料,請完成下列步驟:
- 在「Key」欄位中輸入金鑰名稱。
- 在「Value」(值) 欄位中,輸入該鍵的值。
- 選用:按一下「+ 新增項目」,新增更多鍵/值組合。
- 如要更新固定鍵中繼資料,請完成下列步驟:
- 如要展開「Update fixed-key metadata」(更新固定鍵中繼資料) 專區,請按一下 展開箭頭。
- 在「選取一或多項要更新的中繼資料」清單中,選取要編輯的中繼資料項目。
- 如要新增自訂中繼資料,請完成下列步驟:
- 更新/輪替加密金鑰:如要使用或更新物件的加密金鑰,請按照下列步驟操作:
- 在「選取 Cloud KMS 金鑰」清單中,選取客戶自行管理的加密金鑰 (CMEK)。
- 選用:選取 切換專案,從其他專案挑選金鑰,或選取 手動輸入金鑰填寫詳細資料。
- 刪除物件:如要刪除物件,請按照下列步驟操作:
- 確認是否已啟用物件版本管理功能。
如果已啟用物件版本管理功能,請選擇下列其中一個刪除選項:
- 選取「刪除物件的所有版本」,即可移除使用中和非現行的版本。
- 選取「永久刪除使用中的版本」,即可只移除使用中的版本。
如果未啟用物件版本管理功能,選取要刪除的物件會永久刪除。
- 點選「下一步」。
- 在「為作業命名並指定物件」窗格中,執行下列操作:
- 在「名稱」欄位中輸入名稱。
- 選用:在「Description」(說明) 欄位中輸入說明。
- 在「指定物件」部分中,定義處理值區物件的條件。選擇下列其中一個選項:
- 選取所有物件:包括值區中的所有物件。
- 透過前置字串篩選器選取物件:如要透過前置字串篩選器定義物件清單,請按照下列步驟操作:
- 在「Enter Prefixes of the objects to be included」(輸入待加入物件的前置字串) 欄位中,輸入前置字串。
- 選用:按一下「+ 新增前置字元」,指定其他前置字元。
- 使用資訊清單 CSV 檔案上傳物件清單:如要使用資訊清單檔案選取物件,請按照下列步驟操作:
- 將資訊清單 CSV 檔案上傳至 bucket。這個檔案必須包含「Bucket 名稱」、「物件鍵」和「版本編號」的標頭。
- 在「選取資訊清單檔案模式」清單中,選擇下列其中一個選項:
- 如果選取「選取 Cloud Storage 中的資訊清單檔案」,請點按「選取 Cloud Storage 中的資訊清單檔案」欄位中的「瀏覽」。在隨即顯示的「選取物件」對話方塊中,找出資訊清單 CSV 檔案,然後按一下「選取」。
- 如果選取「使用萬用字元選取多個資訊清單檔案」,請在「使用萬用字元輸入資訊清單檔案位置」欄位中輸入檔案路徑。例如:
bucket-name/folder/manifest_*。
- 點選「建立」。
指令列
-
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。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_NAME OBJECT_SELECTION_FLAG JOB_TYPE_FLAG \ --dry-run
模擬測試時使用的參數與實際工作相同。詳情請參閱參數說明。
如要查看模擬測試結果,請參閱「取得儲存空間批次作業工作詳細資料」。
模擬測試成功後,請執行
gcloud storage batch-operations jobs create指令。gcloud storage batch-operations jobs create JOB_NAME\ --bucket=BUCKET_NAME OBJECT_SELECTION_FLAG JOB_TYPE_FLAG
其中參數如下:
DRY_RUN_JOB_NAME是儲存空間批次作業試執行工作的名稱。JOB_NAME是儲存空間批次作業工作的名稱。BUCKET_NAME是包含一或多個要處理物件的值區名稱。OBJECT_SELECTION_FLAG是下列其中一個必須指定的標記:JOB_TYPE_FLAG是您需要指定的下列其中一個標記,視工作類型而定。--delete-object:刪除一或多個物件。如果 bucket 已啟用物件版本管理功能,現行物件會轉換為非現行狀態,非現行物件則會略過。
如果 bucket 已停用物件版本管理功能,刪除作業會永久刪除物件,並略過非現行物件。
--enable-permanent-object-deletion:永久刪除物件。搭配使用這個旗標和--delete-object旗標,即可永久刪除 bucket 中的使用中和非現行物件,無論 bucket 的物件版本管理設定為何。--rewrite-object:更新一或多個物件的客戶自行管理的加密金鑰。--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
--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錯誤。 - 您可以擴充
RETAIN_UNTIL_TIME值,適用於Unlocked或Locked模式的物件。 - 如要執行下列操作,物件保留功能必須處於
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
REST API
JSON API
建立 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" } "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 }, "dryRun": DRY_RUN_VALUE }
其中:
JOB_NAME是儲存空間批次作業工作的名稱。JOB_DESCRIPTION是 Storage 批次作業工作的說明。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 金鑰值。更新物件中繼資料:
"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錯誤。 - 您可以擴充
RETAIN_UNTIL_TIME值,適用於Unlocked或Locked模式的物件。 - 如要執行下列操作,物件保留功能必須處於
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,即可刪除所有現有物件內容。
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」(作業) 分頁標籤。
- 在作業清單中,按一下要查看的工作的「作業 ID」。
- 詳細資料頁面的「總覽」分頁會顯示工作指標,例如發現的物件、處理的物件,以及發生的任何錯誤。
- 在「錯誤摘要」表格中,查看執行失敗的詳細資料,或按一下「在 Cloud Logging 中查看」來查看記錄。
- 如要查看工作設定,請按一下「Configuration」(設定) 分頁標籤。
指令列
-
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
在開發環境中執行
gcloud storage batch-operations jobs describe指令。gcloud storage batch-operations jobs describe JOB_ID
其中:
JOB_ID是儲存空間批次作業工作的名稱。模擬執行工作時,輸出內容會包含下列欄位:
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
REST API
JSON API
使用
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_ID"
其中:
PROJECT_ID是專案的 ID 或編號。例如:my-project。JOB_ID是儲存空間批次作業工作的名稱。
模擬執行工作時,輸出內容會包含下列欄位:
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": [ "" ] } } ] } }
列出 Storage 批次作業工作
本節說明如何列出專案中的 Storage 批次作業工作。
如要取得列出儲存空間批次作業工作所需的權限,請要求管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
- 在 bucket 清單中,點選與作業相關聯的 bucket 名稱。
- 在「Bucket details」(值區詳細資料) 頁面中,按一下「Operations」(作業) 分頁標籤。「作業」頁面會顯示正在執行的作業清單。
指令列
-
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
REST API
JSON API
使用
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。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
在開發環境中執行
gcloud storage batch-operations jobs cancel指令。gcloud storage batch-operations jobs cancel JOB_ID
其中:
JOB_ID是儲存空間批次作業工作的名稱。
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
REST API
JSON API
使用
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_ID"
其中:
PROJECT_ID是專案的 ID 或編號。例如:my-project。JOB_ID是儲存空間批次作業工作的名稱。
刪除儲存空間批次作業工作
本節說明如何刪除儲存空間批次作業工作。
如要取得刪除 Storage 批次作業工作所需的權限,請要求管理員授予您專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,按一下與要刪除的儲存空間批次作業相關聯的 bucket 名稱。
按一下「作業」分頁標籤。這個分頁會顯示批次作業工作清單。您只能刪除未執行的工作,例如成功、失敗或取消的工作。
在作業清單中,選取要刪除的一或多個工作,然後按一下「刪除」。
指令列
-
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
在開發環境中執行
gcloud storage batch-operations jobs delete指令。gcloud storage batch-operations jobs delete JOB_ID
其中:
JOB_ID是儲存空間批次作業工作的名稱。
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
REST API
JSON API
使用
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_ID"
其中:
PROJECT_ID是專案的 ID 或編號。例如:my-project。JOB_ID是儲存空間批次作業工作的名稱。
使用儲存空間分析資料集建立儲存空間批次作業工作
如要使用 Storage Insights 資料集建立儲存空間批次作業工作,請完成下列章節中的步驟。
如要取得建立 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是值區名稱。例如:my-bucket。SNAPSHOT_TIME是儲存空間分析資料集檢視畫面的快照時間。例如:2024-09-10T00:00:00Z。
使用資訊清單檔案建立儲存空間批次作業工作
如要建立儲存空間批次作業工作,處理資訊清單中包含的物件,請完成下列步驟:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要執行批次作業物件的 bucket 名稱。
系統會開啟「Bucket details」(值區詳細資料) 頁面,並選取「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。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
在開發環境中執行
gcloud storage batch-operations jobs create指令:gcloud storage batch-operations jobs create \ JOB_ID \ --bucket=SOURCE_BUCKET_NAME \ --manifest-location=URI \ JOB_TYPE_FLAG
其中:
JOB_ID是儲存空間批次作業工作的名稱。SOURCE_BUCKET_NAME是包含一或多個要處理物件的值區。例如:my-bucket。URI是包含資訊清單的值區 URI。例如,gs://bucket_name/path_to_csv_file/*.csv。使用*.csv萬用字元時,BigQuery 會將結果匯出至多個 CSV 檔案。JOB_TYPE_FLAG是下列其中一個旗標,視工作類型而定。--delete-object:刪除一或多個物件。--put-metadata:更新物件中繼資料。物件中繼資料會以鍵/值組合的形式儲存。指定要修改的中繼資料鍵/值組合。您可以將一或多個鍵/值組合指定為清單。您也可以使用--put-metadata標記提供物件保留設定。--rewrite-object:更新一或多個物件的客戶自行管理的加密金鑰。--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 時,您可以將專案加入 service perimeter,防止來自 perimeter 外部的要求存取資源和服務。如要進一步瞭解儲存空間批次作業的 VPC Service Controls 服務邊界詳細資料,請參閱「支援的產品和限制」。
使用 Cloud 稽核記錄查看儲存空間批次作業工作
儲存空間批次作業工作會記錄 Cloud Storage 物件的轉換作業,並儲存在 Cloud Storage Cloud 稽核記錄中。您可以搭配使用 Cloud Storage 和 Cloud 稽核記錄,追蹤儲存空間批次作業工作執行的物件轉換。如要瞭解如何啟用稽核記錄,請參閱「啟用稽核記錄」。在稽核記錄項目中,callUserAgent 中繼資料欄位的值為 StorageBatchOperations,表示儲存空間批次作業已轉換。