本页介绍了如何创建、查看、列出、取消和删除 存储空间批量操作作业。其中还介绍了如何将 Cloud Audit Logs 与存储批量操作作业搭配使用。
准备工作
如需创建和管理存储空间批量操作作业,请完成以下部分中的步骤。
配置存储空间分析情报
如需创建和管理存储空间批量操作作业,请在要运行作业的存储桶上配置存储空间分析情报。
设置 Google Cloud CLI
您必须使用 Google Cloud CLI 516.0.0 或更高版本。
设置默认项目
设置您要创建存储批量操作作业的项目。
gcloud config set project PROJECT_ID
其中,PROJECT_ID 是项目 ID。
启用 API
启用 Storage Batch Operations API。
gcloud services enable storagebatchoperations.googleapis.com
创建清单
如需使用清单进行对象选择,请创建清单。
创建存储空间批量操作作业
本部分介绍了如何创建存储空间批量操作作业。
命令行
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
在开发环境中,运行
gcloud storage batch-operations jobs create
命令。gcloud storage batch-operations jobs create JOB_NAME --bucket=BUCKET_NAME OBJECT_SELECTION_FLAG JOB_TYPE_FLAG
其中:
JOB_NAME
是存储批量操作作业的名称。BUCKET_NAME
是包含您要处理的一个或多个对象的存储桶名称。OBJECT_SELECTION_FLAG
是以下标志之一:JOB_TYPE_FLAG
是以下标志之一,具体取决于作业类型。--delete-object
:删除一个或多个对象。--put-metadata
:更新对象元数据。对象元数据以键值对的形式存储。为您要修改的元数据指定键值对。您可以将一个或多个键值对指定为列表。--rewrite-object
:更新一个或多个对象的客户管理的加密密钥。--put-object-event-based-hold
:启用基于事件的对象保留。--no-put-object-event-based-hold
:停用基于事件的对象保持。--put-object-temporary-hold
:启用临时对象保留。--no-put-object-temporary-hold
:停用临时对象保留。
REST API
JSON API
安装并初始化 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" } "PutMetadata": { METADATA_KEY= METADATA_VALUE, ..., } "PutObjectHold": { "temporary_hold": TEMPORARY_HOLD_VALUE, "event_based_hold": EVENT_BASED_HOLD_VALUE } }
其中:
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 密钥的值。更新对象元数据:
"PutMetadata": { METADATA_KEY= METADATA_VALUE, ..., }
其中
METADATA_VALUE
是对象的元数据键值。您可以将一个或多个键值对指定为列表。更新对象保全:
"PutObjectHold": { "temporary_hold": TEMPORARY_HOLD_VALUE, "event_based_hold": EVENT_BASED_HOLD_VALUE }
其中:
TEMPORARY_HOLD_VALUE
用于启用或停用临时对象保全。值为1
表示启用保持,值为2
表示停用保持。EVENT_BASED_HOLD_VALUE
用于启用或停用基于事件的对象保全。值为1
表示启用保持,值为2
表示停用保持。
使用
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/project=PROJECT_ID/locations/global/jobs?job_id=JOB_ID"
其中:
JSON_FILE_NAME
是 JSON 文件的名称。PROJECT_ID
是项目的 ID 或编号。例如my-project
。JOB_ID
是存储批量操作作业的名称。
获取存储空间批量操作作业详情
本部分介绍了如何获取存储批处理操作作业详情。
命令行
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
在开发环境中,运行
gcloud storage batch-operations jobs describe
命令。gcloud storage batch-operations jobs describe JOB_ID
其中:
JOB_ID
是存储批量操作作业的名称。
REST API
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_ID"
其中:
PROJECT_ID
是项目的 ID 或编号。例如my-project
。JOB_ID
是存储批量操作作业的名称。
列出存储空间批量操作作业
本部分介绍了如何列出项目中的存储批量操作作业。
命令行
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
在开发环境中,运行
gcloud storage batch-operations jobs list
命令。gcloud storage batch-operations jobs list
REST API
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
。
取消存储空间批量操作作业
本部分介绍了如何取消项目中的存储批量操作作业。
命令行
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
在开发环境中,运行
gcloud storage batch-operations jobs cancel
命令。gcloud storage batch-operations jobs cancel JOB_ID
其中:
JOB_ID
是存储批量操作作业的名称。
REST API
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_ID"
其中:
PROJECT_ID
是项目的 ID 或编号。例如my-project
。JOB_ID
是存储批量操作作业的名称。
删除存储空间批量操作作业
本部分介绍了如何删除存储空间批量操作作业。
命令行
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
在开发环境中,运行
gcloud storage batch-operations jobs delete
命令。gcloud storage batch-operations jobs delete JOB_ID
其中:
JOB_ID
是存储批量操作作业的名称。
REST API
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_ID"
其中:
PROJECT_ID
是项目的 ID 或编号。例如my-project
。JOB_ID
是存储批量操作作业的名称。
使用存储空间分析数据集创建存储空间批量操作作业
如需使用存储空间分析数据集创建存储空间批量操作作业,请完成以下部分中的步骤。
使用存储空间分析数据集创建清单
您可以从 BigQuery 中提取数据,为存储批量操作作业创建清单。为此,您需要查询关联的数据集,将生成的数据导出为 CSV 文件,然后将其保存到 Cloud Storage 存储桶。然后,存储空间批量操作作业可以使用此 CSV 文件作为其清单。
在 BigQuery 中对存储空间分析数据集视图运行以下 SQL 查询可检索大于 1 KiB 且名为 Temp_Training
的对象:
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
。
创建存储空间批量操作作业
如需创建存储批量操作作业以处理清单中包含的对象,请完成以下步骤:
命令行
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
在开发环境中,运行
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
:更新对象元数据。对象元数据以键值对的形式存储。为您要修改的元数据指定键值对。您可以将一个或多个键值对指定为列表。--rewrite-object
:更新一个或多个对象的客户管理的加密密钥。--put-object-event-based-hold
:启用基于事件的对象保留。--no-put-object-event-based-hold
:停用基于事件的对象保留。--put-object-temporary-hold
:启用临时对象保留。--no-put-object-temporary-hold
:停用临时对象保留。
为存储空间批量操作作业使用 Cloud Audit Logs
存储空间批量操作作业会在 Cloud Storage Cloud Audit Logs 中记录对 Cloud Storage 对象的转换。您可以将 Cloud Audit Logs 与 Cloud Storage 搭配使用,跟踪存储批量操作作业执行的对象转换。如需了解如何启用审核日志,请参阅启用审核日志。在审核日志条目中,值为 StorageBatchOperations
的 callUserAgent
元数据字段表示存储批量操作转换。