本页面介绍了如何启用和停用请求者付款功能,以及如何检查存储桶是否启用了请求者付款功能。
所需的角色
如需获得设置和管理请求者付款所需的权限,请让您的管理员为您授予包含存储桶的项目的 Storage Admin (roles.storage.Admin) 角色。
此角色可提供设置和管理请求者付款所需的权限。 如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.buckets.getstorage.buckets.updateresourcemanager.projects.createBillingAssignment- 只有在停用请求者付款功能时没有要使用的结算账号的情况下,才需要此权限。如需了解详情,请参阅使用和访问要求。
如需了解如何授予项目的角色,请参阅授予或撤消角色。
设置请求者付款
如要为存储桶启用或停用请求者付款功能,请按如下所述操作:
控制台
- 在 Cloud de Confiance 控制台中,转到 Cloud Storage 存储桶页面。
在存储桶列表中,找到要设置的存储桶,找到请求者付款列。
该列中的值表示该存储桶的请求者付款功能的当前状态。
点击存储桶对应的请求者付款的当前状态。
在随即显示的窗口中,点击开启或关闭,具体取决于您要为请求者付款设置的状态。
此功能启用后,该存储桶对应的请求者付款列中会显示一个绿色气泡和一个开启按钮。此功能停用后,列中会显示一个灰色气泡和一个关闭按钮。
如需了解如何在 Cloud de Confiance 控制台中获取失败的 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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例在存储桶上启用请求者付款功能:
以下示例在存储桶上停用请求者付款功能:
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization标头生成访问令牌。创建一个包含以下信息的 JSON 文件:
{ "billing": { "requesterPays": STATE } }
其中 STATE 为
true或false。使用
cURL,通过PATCHBucket 请求调用 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.s3nsapis.fr/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,通过PUTBucket 请求和billing查询字符串参数调用 XML API:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/BUCKET_NAME?billing"
其中:
XML_FILE_NAME是您在第 2 步中创建的 XML 文件的路径。BUCKET_NAME是相关存储桶的名称,例如my-bucket。
检查请求者付款功能是否已启用
要检查某个存储桶是否启用了请求者付款功能,请按如下所述操作:
控制台
- 在 Cloud de Confiance 控制台中,转到 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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization标头生成访问令牌。使用
cURL,通过GETBucket 请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=billing"
其中
BUCKET_NAME是相关存储桶的名称,例如my-bucket。
XML API
安装并初始化 gcloud CLI,以便为
Authorization标头生成访问令牌。使用
cURL,通过GETBucket 请求和billing查询字符串参数调用 XML API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/BUCKET_NAME?billing"
其中
BUCKET_NAME是相关存储桶的名称,例如my-bucket。
访问启用了请求者付款功能的存储桶
以下示例显示了如何包含结算项目,以便从启用了请求者付款功能的存储桶中下载对象。若要对启用了请求者付款功能的存储桶或该存储桶中的对象执行其他请求,可以按照与此类似的过程进行操作。请参阅请求者付款功能访问要求,了解前提条件注意事项。
控制台
- 在 Cloud de Confiance 控制台中,转到 Cloud Storage 存储桶页面。
在存储桶列表中,找到包含要下载的对象的存储桶,并点击其名称。
在随即出现的窗口中,使用下拉菜单选择结算项目。
选中相应复选框以确认您有权使用所选项目进行结算。
点击保存。
按照正常方式下载对象。
如需了解如何在 Cloud de Confiance 控制台中获取失败的 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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
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.s3nsapis.fr/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
在您的请求中,加入
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.s3nsapis.fr/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。