OSS でバケットの pay-by-requester モードを有効化すると、バケット所有者ではなく、リクエスターがリクエストとトラフィックの料金を支払います。 バケット所有者は、データのストレージ料金を支払います。 この機能を有効にすると、自分ですべてのリクエストとトラフィックの料金を支払わなくてもデータを共有できます。

pay-by-requester モードは、中国 (深セン) でのみ利用可能です。

  • 郵便番号簿、参照データ、地理空間情報、Web クロールデータなどの大規模データセットを共有します。 たとえば、ある研究所は公開データセットを提供して顧客とデータを共有し、リクエストとトラフィックの料金を顧客に支払ってもらいたいと考えています。 設定手順は次のとおりです。
    1. バケットの pay-by-requester モードを有効にします。 手順の詳細は、「バケットの pay-by-requester モードの有効化」をご参照ください。
    2. バケットポリシーを設定して、顧客の Alibaba Cloud アカウントの RAM ユーザーがバケットにアクセスすることを許可します。 設定の詳細は、「バケットポリシーを使用した他のユーザーに対する OSS リソースへのアクセス許可」をご参照ください。
  • 顧客やパートナーにデータを配信します。 たとえば、ある企業は生産データをパートナーに配信する必要があり、データのダウンロードによって生成されるリクエストとトラフィックの料金をパートナーに支払ってもらいたいと考えています。
    設定手順は次のとおりです。
    1. バケットの pay-by-requester モードを有効にします。
    2. バケットの ACLを非公開に設定します。
    3. バケットポリシーを設定して、パートナーの Alibaba Cloud アカウントの RAM ユーザーがバケットにアクセスすることを許可します。 設定の詳細は、「チュートリアル: バケットポリシーを追加して、他の Alibaba Cloud アカウントで RAM ユーザーに権限付与」をご参照ください。
    重要 顧客またはパートナーの Alibaba Cloud アカウントの RAM ユーザーにバケットへのアクセスを許可する必要がありますが、企業側の RAM ユーザーの AccessKey ペアを提供しないでください。 顧客またはパートナーが、企業側の RAM ユーザーを使用してバケットにアクセスすると、リクエスターは企業側なので、リクエストとトラフィックの料金を支払う必要があります。

リクエスト方法

  • 匿名アクセスは許可されていません。

    バケットの pay-by-requester モードを有効にしている場合、匿名ユーザーはバケットにアクセスできません。 リクエスターは OSS で識別されるように認証情報を提供し、リクエストとトラフィックの料金がバケット所有者ではなくリクエスターに課金されるようにしなければなりません。

    リクエスターが Alibaba Cloud アカウントの RAM ロールを使用してデータをリクエストした場合、この Alibaba Cloud アカウントにリクエストとトラフィックの料金が課金されます。

  • リクエスターは、リクエストヘッダーに x-oss-request-payer フィールドを含める必要があります。

    バケットの pay-by-requester モードを有効にした場合、リクエスターは、POST、GET、または HEAD リクエストのリクエストヘッダーに x-oss-request-payer:requester フィールドを含める必要があります。 このフィールドは、リクエスターがリクエストとデータのダウンロードに料金が発生することを理解していることを示します。 このフィールドを含めない場合、リクエストは認証に合格できません。

    バケット所有者自身のバケットにアクセスするとき、リクエストヘッダーに x-oss-request-payer フィールドを含める必要はありません。 この場合、バケット所有者は、リクエストとトラフィックの料金を支払うリクエスターです。

料金分析

pay-by-requester モードでは、リクエスターがリクエストとトラフィックの料金を支払い、バケット所有者はデータのストレージ料金を支払います。 ただし、次の場合、リクエストは失敗し (HTTP ステータスコード 403 が返されます)、リクエスト料金はバケット所有者に課金されます。

  • リクエスターは、POST、GET、または HEAD リクエストのリクエストヘッダーに x-oss-request-payer フィールドを含めていない。または、このフィールドを RESTful API を介したリクエストのパラメーターとして使用していない。
  • リクエスターは認証されなかった。
  • リクエスターは匿名。

参照