本页面介绍了如何在 Cloud Storage 中使用通过方法调用启动的长时间运行的操作。如需详细了解长时间运行的操作的语义(包括可以对长时间运行的操作执行哪些请求),请参阅特定于功能的文档。
如需了解有关如何管理长时间运行的操作的一般信息,请参阅 gcloud storage operations
文档。
获取长时间运行的操作的详细信息
如需获取长时间运行的操作的详细信息或检查其状态,请使用 gcloud storage operations describe
命令:
gcloud storage operations describe projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID
您需要将其中的:
BUCKET_NAME
替换为包含长时间运行的操作的存储桶的名称。例如my-bucket
。OPERATION_ID
替换为长时间运行的操作的 ID,该 ID 会在您调用的方法的响应中返回。例如,调用gcloud storage restore
会返回以下响应,长时间运行的操作 ID 为BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
:Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
列出存储桶中长时间运行的操作
如需列出存储桶中长时间运行的操作,请使用 gcloud storage operations list
命令:
gcloud storage operations list gs://BUCKET_NAME
您需要将其中的:
BUCKET_NAME
替换为包含长时间运行的操作的存储桶的名称。例如my-bucket
。
取消长时间运行的操作
如需取消长时间运行的操作,请使用 gcloud storage operations cancel
命令:
gcloud storage operations cancel projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID
您需要将其中的:
BUCKET_NAME
替换为包含长时间运行的操作的存储桶的名称。例如my-bucket
。OPERATION_ID
替换为长时间运行的操作的 ID,该 ID 会在您调用的方法的响应中返回。例如,调用gcloud storage restore
会返回以下响应,长时间运行的操作 ID 为BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
:Created: projects/_/buckets/my-bucket/operations/BcazhBlHv2uZwnlh1UdamOfKbpVpb67drEwVoI2hlkE1e0eaXqw7fPBWP0802TJry4pInGC4h3wxtOi31RmpCC_lvnSocj_-jP
错误处理
长时间运行的操作通过异步 API 启动,需要的错误处理做法与同步 API 不同。与同步 API 不同,即使长时间运行的操作最终失败,对异步 API 调用的响应也可能指示成功。您应该解析响应正文中的长时间运行的操作元数据以确定 API 调用是否成功,而不是依赖于响应标头中返回的状态代码。
例如,如果您发出软删除批量恢复请求,则即使操作过程中发生错误,该请求也会返回成功的 HTTP 状态代码 (200 OK
)。如需检查批量恢复操作是否成功,请获取长时间运行的操作的状态。
请注意,长时间运行的操作 API(Get、List、Cancel)是同步的,会返回正常错误。