本页面介绍了如何创建、查看、列出、取消和删除 存储批量操作作业。本文还介绍了如何将 Cloud Audit Logs 与存储批量操作作业搭配使用。
准备工作
如需创建和管理存储批量操作作业,请完成以下部分中的步骤。
配置 Storage Intelligence
如需创建和管理存储批量操作作业,请在要运行作业的存储桶上配置Storage Intelligence。
设置 Google Cloud CLI
您必须使用 Google Cloud CLI 516.0.0 或更高版本。
设置默认项目
设置要在其中创建存储批量操作作业的项目。
gcloud config set project PROJECT_ID
其中,PROJECT_ID 是项目 ID。
启用 API
启用存储批量操作 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
:停用临时对象保全。
安装并初始化 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
是存储批量操作作业的名称。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
REST API
JSON API
获取存储批量操作作业的详细信息
本部分介绍了如何获取存储批量操作作业的详细信息。
命令行
-
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
是存储批量操作作业的名称。安装并初始化 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
是存储批量操作作业的名称。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
REST API
JSON API
列出存储批量操作作业
本部分介绍如何列出项目中的存储批量操作作业。
命令行
-
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
安装并初始化 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
。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
REST API
JSON API
取消存储批量操作作业
本部分介绍如何取消项目中的存储批量操作作业。
命令行
-
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
是存储批量操作作业的名称。安装并初始化 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
是存储批量操作作业的名称。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
REST API
JSON API
删除存储批量操作作业
本部分介绍了如何删除存储批量操作作业。
命令行
-
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
是存储批量操作作业的名称。安装并初始化 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
是存储批量操作作业的名称。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
REST API
JSON API
使用存储空间分析数据集创建存储批量操作作业
如需使用存储空间分析数据集创建存储批量操作作业,请完成以下部分中的步骤。
使用存储空间分析数据集创建清单
您可以通过从 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
。
创建存储批量操作作业
如需创建存储批量操作作业来处理清单中包含的对象,请完成以下步骤:
命令行
-
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
:停用临时对象保全。
与 VPC Service Controls 集成
您可以使用 VPC Service Controls 为存储空间批量操作资源提供一层额外的安全保障。在使用 VPC Service Controls 时,您可以将项目添加到服务边界,从而防止资源和服务受到源自边界外部的请求的影响。如需详细了解存储批量操作的 VPC Service Controls 服务边界详情,请参阅支持的产品和限制。
将 Cloud Audit Logs 用于存储空间批量操作作业
存储批量操作作业会在 Cloud Storage Cloud Audit Logs 中记录对 Cloud Storage 对象的转换。您可以将 Cloud Audit Logs 与 Cloud Storage 搭配使用,以跟踪存储批量操作作业执行的对象转换。如需了解如何启用审核日志,请参阅启用审核日志。在审核日志条目中,值为 StorageBatchOperations
的 callUserAgent
元数据字段表示存储批量操作转换。