通常OSS Bucket拥有者将支付该Bucket的存储费用、流量费用和请求费用。但是,Bucket拥有者可以将Bucket配置为开启请求者付费模式。使用请求者付费模式时,请求方 (而不是Bucket拥有者) 将支付流量费用和请求费用。而Bucket拥有者将始终支付存储费用。

通常情况下,当您想共享数据,而又不希望产生读取数据等其他操作带来的费用时,您可以配置Bucket开启请求者付费模式。
说明 请求者付费模式目前只在华南1(深圳)开放。

使用案例

  • 共享大型数据集 (如邮政编码目录、参考数据、地理空间信息或网络爬取数据)。例如,研究机构提供公开数据集,希望所有客户都能访问该数据,但请求产生的流量费用和请求次数费用由请求者支付。配置步骤如下:
    1. 将Bucket开启请求者付费模式。
    2. 通过Bucket Policy,将该Bucket授权给所有人。
  • 将数据交付给您的客户或合作伙伴。例如,某公司需要将生产数据交付给他的合作伙伴,下载数据产生的流量费用和请求次数费用需要由合作伙伴支付。配置步骤如下:
    1. 将Bucket开启请求者付费模式。
    2. 将Bucket ACL设置为私有。
    3. 利用Bucket Policy,将该Bucket授权给您的合作伙伴的阿里云访问控制RAM子账号。
    注意 您需要将Bucket授权给对方的RAM子账号,而不是将您账号下的RAM子账号的AK提供给对方。因为,当对方通过您账号下的RAM子账号访问时,请求者仍是您自身,则请求费用需要由您(请求者)付费。
关于Bucket Policy授权,请参见使用Bucket Policy授权其他用户访问OSS资源

请求方式说明

  • 不允许匿名访问

    如果您在Bucket上启用了请求者付费模式,则不允许匿名访问该Bucket。请求方必须提供身份验证信息,以便OSS能够识别请求方,从而对请求方而非Bucket拥有者收取请求所产生的费用。

    当请求者是通过扮演阿里云 RAM 角色来请求数据时,该角色所属的账户将为此请求付费。

  • 申请方需携带x-oss-request-payer信息

    如果您在Bucket上启用了请求者付费模式,请求方必须在其请求中包含 x-oss-request-payer:requester (在 POST、GET 和 HEAD 请求的Head信息中),以表明请求方知道请求和数据下载将产生费用。否则,请求方无法通过验证。

    数据拥有者访问该Bucket时,可以不携带x-oss-request-payer 请求头。数据拥有者作为请求者访问该Bucket时,请求产生的费用由数据拥有者(也是请求者)来支付。

费用详解

请求者付费模式下,请求者支付流量费用和请求费用,Bucket拥有者支付存储费用。但是在以下情况下,请求会失败(返回HTTP 403错误),将对Bucket拥有者收取请求费用:

  • 请求者未在请求中 (GET、HEAD 或 POST) 包含参数 x-oss-request-payer,或未在请求中将其作为参数 (REST) 。
  • 请求身份验证失败。
  • 请求是匿名请求 。

功能使用参考