使用请求者付款 (original) (raw)

概览

本页面介绍了如何启用和停用请求者付款功能,以及如何检查存储桶是否启用了请求者付款功能。

所需的角色

如需获得设置和管理请求者付款所需的权限,请让您的管理员为您授予包含存储桶的项目的 Storage Admin (roles.storage.Admin) 角色。

此角色可提供设置和管理请求者付款所需的权限。 如需查看所需的确切权限,请展开所需权限部分:

所需权限

您也可以使用其他预定义角色自定义角色来获取这些权限。

如需了解如何授予项目的角色,请参阅授予或撤消角色

设置请求者付款

如要为存储桶启用或停用请求者付款功能,请按如下所述操作:

检查请求者付款功能是否已启用

要检查某个存储桶是否启用了请求者付款功能,请按如下所述操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。
    进入“存储桶”
  2. 在存储桶列表中,可在请求者付款列中查看每个存储桶的请求者付款功能状态。

如果已启用,则状态为绿色且显示有文字开启

命令行

使用带有 --format 标志的 gcloud storage buckets describe 命令:

gcloud storage buckets describe gs://BUCKET_NAME --format="default(requester_pays)"

其中,BUCKET_NAME 是您要查看其状态的存储桶的名称,例如 my-bucket

如果成功,响应类似于以下示例:

requester_pays: true

客户端库

REST API

JSON API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。
  2. 使用 cURL,通过 GET Bucket 请求调用 JSON API
    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=billing"
    其中 BUCKET_NAME 是相关存储桶的名称,例如 my-bucket

XML API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。
  2. 使用 cURL,通过 GET Bucket 请求和 billing 查询字符串参数调用 XML API
    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/BUCKET_NAME?billing"
    其中 BUCKET_NAME 是相关存储桶的名称,例如 my-bucket

访问启用了请求者付款功能的存储桶

以下示例显示了如何包含结算项目,以便从启用了请求者付款功能的存储桶中下载对象。若要对启用了请求者付款功能的存储桶或该存储桶中的对象执行其他请求,可以按照与此类似的过程进行操作。请参阅请求者付款功能访问要求,了解前提条件注意事项。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。
    进入“存储桶”
  2. 在存储桶列表中,找到包含要下载的对象的存储桶,并点击其名称。
  3. 在随即出现的窗口中,使用下拉菜单选择结算项目。
  4. 选中相应复选框以确认您有权使用所选项目进行结算。
  5. 点击保存
  6. 按照正常方式下载对象

如需了解如何在 Google Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查

命令行

在您的请求中使用 --billing-project 标志:

gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME SAVE_TO_LOCATION --billing-project=PROJECT_IDENTIFIER

其中:

客户端库

REST API

JSON API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。
  2. 在您的请求中,加入 userProject 查询字符串参数(已设为要结算的项目的 ID):
    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -o "SAVE_TO_LOCATION" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media&userProject=PROJECT_IDENTIFIER"
    其中:
    • SAVE_TO_LOCATION 是您要保存您的对象的位置。例如 Desktop/dog.png
    • BUCKET_NAME 是相关存储桶的名称,例如 my-bucket
    • OBJECT_NAME 是您要下载的对象的网址编码名称。例如,pets/dog.png 的网址编码为 pets%2Fdog.png
    • PROJECT_IDENTIFIER 是要结算的项目的 ID 或编号,例如 my-project

XML API

  1. 安装并初始化 gcloud CLI,以便为 Authorization 标头生成访问令牌。
  2. 在您的请求中,加入 x-goog-user-project 标头(已设为要结算的项目的 ID):
    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "x-goog-user-project: PROJECT_ID" \
    -o "SAVE_TO_LOCATION" \
    "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
    其中:
    • PROJECT_ID 是要结算的项目的 ID,例如 my-project
    • SAVE_TO_LOCATION 是您要保存您的对象的位置。例如 Desktop/dog.png
    • BUCKET_NAME 是相关存储桶的名称,例如 my-bucket
    • OBJECT_NAME 是您要下载的对象的网址编码名称。例如,pets/dog.png 的网址编码为 pets%2Fdog.png

后续步骤