使用申请方付款存储桶进行存储传输和使用
通常,存储桶拥有者将支付与他们的存储桶相关联的所有 Amazon S3 存储和数据传输费用。但是,您可以将存储桶配置为申请方付款存储桶。使用申请方付款存储桶时,申请方 (而不是存储桶拥有者) 将支付请求和从存储桶下载数据的费用。存储桶拥有者将始终支付存储数据的费用。
通常情况下,当您想共享数据,而又不希望产生与访问数据等其他操作相关联的费用时,您可以将存储桶配置为申请方付款存储桶。例如,当提供大型数据集(如邮政编码目录、参考数据、地理空间信息或网络爬取数据)时,您可能会使用申请方付款存储桶。
重要
如果您在存储桶上启用了申请方付款,则不允许匿名访问该存储桶。
您必须对涉及申请方付款存储桶的所有请求进行身份验证。请求身份验证使 Amazon S3 能够识别申请方对申请方付款存储桶的使用并对其收费。
当请求者在做出其请求前担任 AWS Identity and Access Management (IAM) 角色时,该角色所属的账户将负责处理此请求。有关 IAM 角色的更多信息,请参阅《IAM 用户指南》中的 IAM 角色。
将桶配置为申请方付款桶后,申请方必须在其 API 请求标头中包含 x-amz-request-payer
(在 DELETE、GET、HEAD、POST 和 PUT 请求的标头中,或在 REST 请求中作为参数),以显示他们知道请求和数据下载将产生费用。
申请方付款存储桶不支持以下内容:
-
匿名申请
-
SOAP 请求
-
将申请方付款存储桶用作最终用户日志记录的目标存储桶,反之亦然。但是,当目标存储桶不是申请方付款存储桶时,您可以在申请方付款存储桶上开启最终用户日志记录。
申请方付款的费用支付方式
成功的申请方付款请求费用简单明了:申请方支付数据传输和请求方面的费用;存储桶拥有者支付数据存储方面的费用。但是,在以下条件下会对存储桶拥有者收取请求费用:
-
申请方未在标头中(DELETE、GET、HEAD、POST 和 PUT)包含参数
x-amz-request-payer
,或未在请求中将其作为参数(REST)(HTTP 代码 403)。 -
请求身份验证失败 (HTTP 代码 403)。
-
请求是匿名的 (HTTP 代码 403)。
-
请求是 SOAP 请求。
有关申请方付款的更多信息,请参阅以下主题。