

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定儲存貯體上的申請者付款
<a name="RequesterPaysExamples"></a>

您可以將 Amazon S3 儲存貯體設定成*申請者付款*儲存貯體，因此是由申請者而非儲存貯體擁有者支付要求和資料下載成本費用。

本節提供如何使用主控台和 REST API 設定 Amazon S3 儲存貯體上申請者付款的範例。

## 使用 S3 主控台
<a name="configure-requester-pays-console"></a>

**為 S3 一般用途儲存貯體啟用申請者付款**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇**一般用途儲存貯體**。

1. 在**一般用途儲存貯體**清單中，選擇要啟用申請者付款的儲存貯體名稱。

1. 選擇 **Properties** (屬性)。

1. 在 **Requester pays (申請者付款)** 底下，選擇 **Edit (編輯)**。

1. 依序選擇 **Enable (啟用)** 和 **Save changes (儲存變更)**。

   Amazon S3 隨即會為儲存貯體啟用申請者付款，然後顯示 **Bucket overview (儲存貯體概觀)**。您會在 **Requester pays (申請者付款)** 底下看到 **Enabled (已啟用)**。

## 使用 REST API
<a name="RequesterPaysBucketConfiguration"></a>

只有儲存貯體擁有者可將儲存貯體的 `RequestPaymentConfiguration.payer` 組態值設成 `BucketOwner` (預設值) 或 `Requester`。`requestPayment` 資源為選擇性設定。儲存貯體預設不是申請者付款的儲存貯體。

若要將申請者付款的儲存貯體還原為一般的儲存貯體，請使用 `BucketOwner` 值。您一般會在將資料上傳至 Amazon S3 儲存貯體時使用 `BucketOwner`，然後將值設成 `Requester`，再於儲存貯體中發佈物件。

**設定 requestPayment**
+ 使用 `PUT` 要求，在指定的儲存貯體上將 `Payer` 值設成 `Requester`。

  ```
  1. PUT ?requestPayment HTTP/1.1
  2. Host: [BucketName].s3.amazonaws.com
  3. Content-Length: 173
  4. Date: Wed, 01 Mar 2009 12:00:00 GMT
  5. Authorization: AWS [Signature]
  6. 
  7. <RequestPaymentConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  8. <Payer>Requester</Payer>
  9. </RequestPaymentConfiguration>
  ```

如果請求成功，Amazon S3 會傳回類似如下的回應。

```
1. HTTP/1.1 200 OK
2. x-amz-id-2: [id]
3. x-amz-request-id: [request_id]
4. Date: Wed, 01 Mar 2009 12:00:00 GMT
5. Content-Length: 0
6. Connection: close
7. Server: AmazonS3
8. x-amz-request-charged:requester
```

您只可以設定儲存貯體層級的申請者付款。您無法設定儲存貯體內特定物件的申請者付款。

您可以隨時將儲存貯體設定成 `BucketOwner` 或 `Requester`。但需要經過幾分鐘才會讓新的組態生效。

**注意**  
分發預先簽章 URL 的儲存貯體擁有者，在將儲存貯體設定成申請者付款前應該慎思，特別是如果 URL 有很長的存活時間時。每次申請者使用利用儲存貯體擁有者登入資料的預先簽章 URL 時，儲存貯體擁有者都需要支付費用。