请求者付款

本页面概述了 Cloud Storage 的“请求者付款”功能。要了解如何设置和使用此功能,请参阅使用请求者付款功能

简介

每次用户访问存储分区或对象等 Cloud Storage 资源时,都会产生与发出和执行请求关联的费用。此类费用包括:

通常,资源的项目所有者需支付这些访问费用;但是,如果请求者随其请求一起提供结算项目,则会针对请求者的项目进行计费。在您的存储分区上启用“请求者付款”功能后,您可以要求请求者在其请求中包含一个结算项目,从而对请求者的项目进行计费。在某些情况下,启用请求者付款功能能够为您带来便利;例如,您想要向用户提供大量数据,但您不希望承担他们访问这些数据所产生的费用,在这种情况下,建议您启用此功能。

未涵盖的费用

即使启用了“请求者付款”功能,我们仍将针对包含存储分区的项目收取以下费用:

限制

使用请求者付款功能时,需遵循下列限制:

  • 启用了请求者付款功能的存储分区不适用于 Cloud SQL 的导入和导出操作。

使用和访问要求

要为存储分区启用“请求者付款”功能,请在所需存储分区上启用元数据标记。启用后,只有以下用户可以访问存储分区或其内容:

  • 请求中添加了结算项目的请求者。请求中使用的项目必须信誉良好,并且用户必须在项目中具有包含 serviceusage.services.use 权限的角色roles/editorroles/owner 角色包含所需的权限。

  • 没有将结算项目包含在内、但对包含存储分区的项目具有 resourcemanager.projects.createBillingAssignment 权限的请求者。roles/billing.projectManager 角色包含所需的权限。这些请求产生的访问费用将计入包含存储分区的项目。

对存储分区发出的所有其他请求都会失败并显示一个 400 UserProjectMissing 错误。

除了这些要求之外,请求者还必须具有足够的权限来执行请求的操作。例如,如果在请求中提供了有效结算项目的用户要将对象上传到存储分区中,他们还必须具有与此操作关联的明确权限,例如,对该存储分区或包含该存储分区的项目具有 storage.objects.create 权限。

对来源计费的操作

同时具有源存储分区和目标存储分区的操作(例如复制或重写)将对包含源存储分区的项目收费。在大多数情况下(例如,使用 JSON 和 XML API 执行的直接调用),仅当存储分区启用了“请求者付款”功能时,您才需要将结算项目包含在内。

在某些情况下(例如 gsutil rewrite),如果源存储分区或目标存储分区(或两者皆有)启用了“请求者付款”功能,则您需要将结算项目包含在内。这是因为,此类操作会在执行操作的过程中同时调用源存储分区和目标存储分区。

多请求操作

执行需要多个请求的操作时(例如多部分上传),操作中的每个请求都必须包含您在用户项目中指定的同一结算项目。如果该结算项目在各个请求之间发生更改,则整个操作将失败,并且您会收到 400 UserProjectInconsistent 错误。

结算

在请求中包含结算项目所产生的费用不会单独显示在您的结算中。例如,假设您从“请求者付款”存储分区中进行了多次下载,并使用项目 my-project 作为该请求的结算项目。如果 my-project 也包含您从中执行下载的存储分区,则您的帐单仅显示下载合并后的总费用。帐号不会区分来自您自己的存储分区的下载和来自“请求者付款”存储分区的下载。

如果您想区分自己的 Cloud Storage 资源产生的费用和在请求中加入结算项目产生的费用,则应创建不包含 Cloud Storage 资源的项目:因此,此项目专用于发出对其他项目中的资源的请求(例如请求者付款功能的存储分区)。

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Storage
需要帮助?请访问我们的支持页面