

# Configurar Pagamento pelo solicitante em um bucket
<a name="RequesterPaysExamples"></a>

Você pode configurar um bucket do Amazon S3 para ser um bucket de *Pagamento pelo solicitante*, de modo que o solicitante pague o custo da solicitação e do download de dados em vez do proprietário do bucket.

Esta seção fornece exemplos de como configurar o pagamento pelo solicitante em um bucket do Amazon S3 usando o console e a API REST.

## Uso do console do S3
<a name="configure-requester-pays-console"></a>

**Como habilitar o pagamento pelo solicitante para um bucket de uso geral do S3**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de uso geral**.

1. Na lista **Buckets de uso geral** escolha o nome do bucket para o qual você deseja habilitar o pagamento pelo solicitante.

1. Escolha **Properties (Propriedades)**.

1. Em **Requester pays (Pagamento pelo solicitante)**, escolha **Edit (Editar)**.

1. Escolha **Enable (Habilitar)** e **Save changes (Salvar alterações)**.

   O Amazon S3 habilitará o Pagamento pelo solicitante para o bucket e exibirá a **Bucket overview (Visão geral do bucket)**. Em **Requester pays** (Pagamento pelo solicitante), você verá a opção **Enabled ** (Habilitado).

## Uso dos REST API
<a name="RequesterPaysBucketConfiguration"></a>

Somente o proprietário do bucket pode definir o valor de configuração `RequestPaymentConfiguration.payer` de um bucket como `BucketOwner` (o padrão) ou `Requester`. A definição do recurso `requestPayment` é opcional. Por padrão, o bucket não é um bucket de Pagamento pelo solicitante.

Para reverter um bucket de Pagamento pelo solicitante para um bucket regular, use o valor `BucketOwner`. Normalmente, você usaria `BucketOwner` ao fazer upload de dados para o bucket do Amazon S3 e definiria o valor como `Requester` antes da publicação de objetos no bucket.

**Para definir requestPayment**
+ Use uma solicitação `PUT` para definir o valor `Payer` como `Requester` em um bucket especificado.

  ```
  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>
  ```

Se houver êxito na solicitação, o Amazon S3 retornará uma resposta similar ao seguinte:

```
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
```

Você pode definir pagamentos do solicitante somente no nível de bucket. Você não pode definir pagamentos pelo solicitante para objetos específicos dentro do bucket.

Você pode configurar um bucket para ser `BucketOwner` ou `Requester` a qualquer momento. No entanto, pode haver alguns minutos antes que o novo valor de configuração entre em vigor.

**nota**  
Proprietários de bucket que abrem mão de URLs pré-assinadas devem pensar duas vezes antes de configurar um bucket para ser de pagamento pelo solicitante, especialmente se o URL tiver um ciclo de vida bem longo. O proprietário do bucket é cobrado cada vez que o solicitante usa um pre-signed URL que usa as credenciais do proprietário do bucket. 