本页面介绍了如何启用和停用请求者付款功能,以及如何检查存储桶是否启用了请求者付款功能。
所需的角色
如需获得设置和管理请求者付款所需的权限,请让您的管理员为您授予包含存储桶的项目的 Storage Admin (roles.storage.Admin
) 角色。
此角色可提供设置和管理请求者付款所需的权限。 如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.buckets.get
storage.buckets.update
resourcemanager.projects.createBillingAssignment
- 只有在停用请求者付款功能时没有要使用的结算账号的情况下,才需要此权限。如需了解详情,请参阅使用和访问要求。
如需了解如何授予项目的角色,请参阅授予或撤消角色。
设置请求者付款
如要为存储桶启用或停用请求者付款功能,请按如下所述操作:
控制台
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
在存储桶列表中,找到要设置的存储桶,找到请求者付款列。
该列中的值表示该存储桶的请求者付款功能的当前状态。
点击存储桶对应的请求者付款的当前状态。
在随即显示的窗口中,点击开启或关闭,具体取决于您要为请求者付款设置的状态。
此功能启用后,该存储桶对应的请求者付款列中会显示一个绿色气泡和一个开启按钮。此功能停用后,列中会显示一个灰色气泡和一个关闭按钮。
如需了解如何在 Google Cloud 控制台中获取有关失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
使用带有相应标志的 gcloud storage buckets update
命令:
gcloud storage buckets update gs://BUCKET_NAME FLAG
其中:
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。FLAG
可以为--requester-pays
(用于启用请求者付款功能)或--no-requester-pays
(用于停用请求者付款功能)。
如果成功,响应类似于以下示例:
Updating gs://my-bucket/... Completed 1
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。创建一个包含以下信息的 JSON 文件:
{ "billing": { "requesterPays": STATE } }
其中 STATE 为
true
或false
。使用
cURL
通过PATCH
Bucket 请求调用 JSON API:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=billing"
其中:
JSON_FILE_NAME
是您在第 2 步中创建的 JSON 文件的路径。BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。
XML API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。创建一个包含以下信息的 XML 文件:
<BillingConfiguration> <RequesterPays>STATE</RequesterPays> </BillingConfiguration>
其中 STATE 为
Enabled
或Disabled
。使用
cURL
,通过PUT
Bucket 请求和billing
查询字符串参数调用 XML API:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?billing"
其中:
XML_FILE_NAME
是您在第 2 步中创建的 XML 文件的路径。BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。
检查请求者付款功能是否已启用
要检查某个存储桶是否启用了请求者付款功能,请按如下所述操作:
控制台
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
在存储桶列表中,可在请求者付款列中查看每个存储桶的请求者付款功能状态。
如果已启用,则状态为绿色且显示有文字开启。
命令行
使用带有 --format
标志的 gcloud storage buckets describe
命令:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(requester_pays)"
其中,BUCKET_NAME
是您要查看其状态的存储桶的名称,例如 my-bucket
。
如果成功,响应类似于以下示例:
requester_pays: true
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
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
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
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
。
访问启用了请求者付款功能的存储桶
以下示例显示了如何包含结算项目,以便从启用了请求者付款功能的存储桶中下载对象。若要对启用了请求者付款功能的存储桶或该存储桶中的对象执行其他请求,可以按照与此类似的过程进行操作。请参阅请求者付款功能访问要求,了解前提条件注意事项。
控制台
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
在存储桶列表中,找到包含要下载的对象的存储桶,并点击其名称。
在随即出现的窗口中,使用下拉菜单选择结算项目。
选中相应复选框以确认您有权使用所选项目进行结算。
点击保存。
按照正常方式下载对象。
如需了解如何在 Google Cloud 控制台中获取有关失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
在您的请求中使用 --billing-project
标志:
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME SAVE_TO_LOCATION --billing-project=PROJECT_IDENTIFIER
其中:
BUCKET_NAME
是包含要下载的对象的存储桶名称,例如my-bucket
。OBJECT_NAME
是要下载的对象的名称,例如pets/dog.png
。SAVE_TO_LOCATION
是保存对象的本地路径,例如Desktop/Images
。PROJECT_IDENTIFIER
是要结算的项目的 ID 或编号,例如my-project
。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。在您的请求中,加入
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
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。在您的请求中,加入
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
。