

# Baixar objetos
<a name="download-objects"></a>

Esta seção explica como baixar objetos de um bucket do Amazon S3. Com o Amazon S3, é possível armazenar objetos em um ou mais buckets e cada objeto pode ter até 50 TB de tamanho. Qualquer objeto do Amazon S3 que não esteja arquivado pode ser acessado em tempo real. Os objetos arquivados, no entanto, devem ser restaurados antes de serem baixados. Para obter informações sobre como baixar objetos arquivados, consulte [Baixar objetos arquivados](#download-archived-objects).

É possível baixar um único objeto usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI), AWS SDKs ou a API REST do Amazon S3. Para baixar um objeto com até 5 TB do S3 sem escrever nenhum código ou executar nenhum comando, use o console do S3. Para obter mais informações, consulte [Fazer download de um objeto](#download-an-object).

Para baixar objetos com mais de 5 TB, use solicitações `GetObject` simultâneas com um cabeçalho HTTP `Range` para ler intervalos de bytes específicos ou `partNumber` para baixar partes específicas de um objeto. Como as solicitações GET únicas são limitadas a 5 TB, será exibido o erro `405 - Method Not Allowed` para solicitações GET acima de 5 TB.

Para downloads de objetos grandes, use o Gerenciador de Transferências do S3 no Java v1/v2, no Python ou nos SDKs da AWS CLI. Para ter o melhor desempenho, use a AWS Common Runtime (CRT) mais recente com esses SDKs, que foi otimizada para melhorar a utilização de recursos. A CRT escala automaticamente o tamanho de GETs individuais para otimizar o throughput. É possível melhorar o throughput geral alocando uma quantidade maior de memória por meio de parâmetros de limite de memória, como `maxNativeMemoryLimitInBytes` para o SDK para Java. Você pode desabilitar esse comportamento definindo um tamanho de parte explícito em sua solicitação de download por meio de parâmetros de solicitação, como `multipart_chunksize` para a AWS CLI e `minimumPartSizeInBytes` para o SDK para Java.

Para baixar vários objetos, use o AWS CloudShell, a AWS CLI ou os AWS SDKs. Para obter mais informações, consulte [Baixar vários objetos](#download-multiple-objects).

Se precisar baixar parte de um objeto, use parâmetros extras com a AWS CLI ou a API REST para especificar somente os bytes que você deseja baixar. Para obter mais informações, consulte [Baixar parte de um objeto](#download-objects-parts).

Se você precisar baixar um objeto que não seja seu, peça ao proprietário do objeto para gerar um URL pré-assinado que permita baixá-lo. Para obter mais informações, consulte [Baixar um objeto de outra Conta da AWS](#download-objects-from-another-account).

Quando você baixa objetos fora da rede da AWS, aplicam-se taxas de transferência de dados. A transferência de dados dentro da rede da AWS é gratuita dentro da mesma Região da AWS, mas haverá cobrança por qualquer solicitação `GET`. Para obter mais informações sobre custos de transferência de dados e cobranças de recuperação de dados, consulte [Preços do Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Fazer download de um objeto](#download-an-object)
+ [Baixar vários objetos](#download-multiple-objects)
+ [Baixar parte de um objeto](#download-objects-parts)
+ [Baixar um objeto de outra Conta da AWS](#download-objects-from-another-account)
+ [Baixar objetos arquivados](#download-archived-objects)
+ [Baixar objetos com base em metadados](#download-objects-based-on-metadata)
+ [Solução de problemas de download de objetos](#download-objects-troubleshooting)

## Fazer download de um objeto
<a name="download-an-object"></a>

É possível baixar um objeto usando o console do Amazon S3, a AWS CLI, AWS SDKs ou a API REST.

### Usar o console do S3
<a name="download-objects-console"></a>

Esta seção explica como usar o console do Amazon S3 para fazer baixar um objeto de um bucket do S3.

**nota**  
Só é possível baixar um objeto por vez.
Se você usar o console do Amazon S3 para baixar um objeto cujo nome da chave termine com um ponto (`.`), o ponto será removido do nome da chave do objeto baixado. Para reter o ponto no final do nome do objeto baixado, você deve usar a AWS Command Line Interface (AWS CLI), AWS SDKs ou a API REST do Amazon S3. 

**Fazer download de um objeto de um bucket 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** ou **Buckets de diretórios**.

1. Na lista de buckets, escolha o nome do bucket do qual você deseja fazer download de um objeto.

    

1. Você pode baixar um objeto de um bucket do S3 de uma das seguintes formas:
   + Marque a caixa de seleção ao lado do objeto e escolha **Fazer download**. Se você quiser baixar o objeto em uma pasta específica, no menu **Ações**, escolha **Fazer download como**.
   + Se você quiser baixar uma versão específica do objeto, ative **Mostrar versões** (ao lado da caixa de pesquisa). Marque a caixa de seleção ao lado da versão do objeto que você deseja e escolha **Fazer Download**. Se você quiser baixar o objeto em uma pasta específica, no menu **Ações**, escolha **Fazer download como**.

### Como usar o AWS CLI
<a name="download-object-cli"></a>

O exemplo de `get-object` a seguir mostra como você pode usar a AWS CLI para baixar um objeto do Amazon S3. Esse comando obtém o objeto `folder/my_image` do bucket `amzn-s3-demo-bucket1`. Você deve incluir um `outfile`, que é um nome de arquivo para o objeto baixado, como `my_downloaded_image.jpg`.

```
aws s3api get-object --bucket amzn-s3-demo-bucket1 --key folder/my_image my_downloaded_image.jpg
```

Para obter mais informações e exemplos, consulte [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html) na *Referência de comandos da AWS CLI*.

### Usar SDKs da AWS
<a name="download-object-sdk"></a>

Consulte exemplos de como baixar um objeto com os SDKs da AWS em [Code examples](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObject_section.html) na *Referência de API do Amazon S3*.

Consulte informações gerais sobre como usar diferentes SDKs da AWS em [Developing with Amazon S3 using the AWS SDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html) na *Referência de API do Amazon S3*.

### Uso da API REST
<a name="download-object-rest"></a>

É possível usar a API REST para recuperar objetos do Amazon S3. Para obter mais informações, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) na *Referência da API do Amazon Simple Storage Service*.

## Baixar vários objetos
<a name="download-multiple-objects"></a>

Você pode baixar vários objetos usando o AWS CloudShell, a AWS CLI ou os AWS SDKs. 

### Usar AWS CloudShell no Console de gerenciamento da AWS
<a name="download-objects-cloudshell"></a>

AWS CloudShell O é um shell pré-autenticado baseado em navegador que você pode iniciar diretamente do Console de gerenciamento da AWS.

Para obter mais informações sobre o AWS CloudShell, consulte [O que é o CloudShell?](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) no *Guia do usuário do AWS CloudShell*.

**Importante**  
Com o AWS CloudShell, o diretório inicial tem armazenamento de até 1 GB por Região da AWS. Portanto, você não pode sincronizar buckets com objetos cujo total ultrapasse esse valor. Para consultar mais limitações, acesse [Cotas e restrições de serviço](https://docs.aws.amazon.com/cloudshell/latest/userguide/limits.html) no *Guia do usuário do AWS CloudShell*.

**Para baixar objetos usando o AWS CloudShell**

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

1. Os comandos a seguir são executados para sincronizar objetos no bucket com o CloudShell. O comando a seguir sincroniza objetos do bucket chamado `amzn-s3-demo-bucket1` e cria uma pasta chamada `temp` no CloudShell. O CloudShell sincroniza os objetos com essa pasta. Para usar esse comando, substitua os `user input placeholders` por suas informações.

   ```
   aws s3 sync s3://amzn-s3-demo-bucket1 ./temp
   ```
**nota**  
O comando `sync` não é compatível com buckets de diretório.  
Para realizar a correspondência de padrões e excluir ou incluir objetos específicos, você pode usar os parâmetros `--exclude "value"` e `--include "value"` com o comando `sync`.

1. Execute o comando a seguir para compactar objetos na pasta chamada `temp` para um arquivo chamado `temp.zip`.

   ```
   zip temp.zip -r temp/
   ```

1. Escolha **Ações** e **Baixar arquivo**.

1. Insira um nome para o arquivo `temp.zip` e escolha **Baixar**.

1. (Opcional) Exclua o arquivo `temp.zip` e os objetos que estão sincronizados com a pasta `temp` no CloudShell. Com o AWS CloudShell, você tem armazenamento persistente de até 1 GB para cada Região da AWS. 

   Você pode usar os exemplos de comandos a seguir para excluir o arquivo `.zip` e a pasta. Para usar esse exemplo de comando, substitua os `user input placeholders` por suas próprias informações. 

   ```
   rm temp.zip && rm -rf temp/
   ```

### Como usar o AWS CLI
<a name="download-objects-cli"></a>

Os exemplos a seguir mostram como você pode usar a AWS CLI para baixar todos os arquivos ou objetos no diretório ou prefixo especificado. Esse comando copia todos os objetos do bucket `amzn-s3-demo-bucket1` para o diretório atual. Para usar esse exemplo de comando, use o nome do seu bucket no lugar de `amzn-s3-demo-bucket1`. 

```
aws s3 cp s3://amzn-s3-demo-bucket1 . --recursive
```

O comando a seguir baixa todos os objetos com o prefixo `logs` no bucket `amzn-s3-demo-bucket1` para o diretório atual. Ele também usa os parâmetros `--exclude` e `--include` para copiar somente objetos com o sufixo `.log`. Para usar esse exemplo de comando, substitua os `user input placeholders` por suas próprias informações.

```
aws s3 cp s3://amzn-s3-demo-bucket1/logs/ . --recursive --exclude "*" --include "*.log"
```

Para obter mais informações e exemplos, consulte [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html) na *Referência de comandos da AWS CLI*.

### Usar SDKs da AWS
<a name="download-objects-sdks"></a>

Consulte exemplos de como baixar todos os objetos em um bucket do Amazon S3 com os SDKs da AWS em [Code examples](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_DownloadBucketToDirectory_section.html) na *Referência de API do Amazon S3*.

Consulte informações gerais sobre como usar diferentes SDKs da AWS em [Developing with Amazon S3 using the AWS SDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html) na *Referência de API do Amazon S3*.

## Baixar parte de um objeto
<a name="download-objects-parts"></a>

É possível baixar parte de um objeto usando a AWS CLI ou a API REST. Para fazer isso, use parâmetros adicionais a fim de especificar qual parte de um objeto você deseja baixar.

### Como usar o AWS CLI
<a name="download-objects-part-cli"></a>

O exemplo de comando a seguir executa uma solicitação `GET` para um intervalo de bytes no objeto chamado `folder/my_data` no bucket denominado `amzn-s3-demo-bucket1`. Na solicitação, o intervalo de bytes deve ter `bytes=` como prefixo. O objeto parcial é baixado para o arquivo de saída chamado `my_data_range`. Para usar esse exemplo de comando, substitua os `user input placeholders` por suas próprias informações.

```
aws s3api get-object --bucket amzn-s3-demo-bucket1 --key folder/my_data --range bytes=0-500 my_data_range
```

Para obter mais informações e exemplos, consulte [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html) na *Referência de comandos da AWS CLI*.

Para obter mais informações sobre o cabeçalho HTTP `Range`, consulte [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-range) no site do RFC Editor.

**nota**  
O Amazon S3 não comporta a recuperação de vários intervalos de dados em uma única solicitação `GET`.

### Uso da API REST
<a name="download-objects-part-rest"></a>

Você pode usar os parâmetros `partNumber` e `Range` na API REST para recuperar partes de objetos do Amazon S3. Para obter mais informações, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) na *Referência da API do Amazon Simple Storage Service*.

## Baixar um objeto de outra Conta da AWS
<a name="download-objects-from-another-account"></a>

É possível usar um URL pré-assinado para conceder acesso por tempo limitado aos objetos sem atualizar a política de bucket.

O URL pré-assinado pode ser inserido em um navegador ou usado por um programa para baixar um objeto. As credenciais usadas pelo URL são as do usuário da AWS que gerou o URL. Depois que o URL for criado, qualquer pessoa com o URL pré-assinado poderá baixar o objeto correspondente até que o URL expire.

### Usar um URL pré-assinado no console do S3
<a name="download-objects-presigned"></a>

É possível usar o console do Amazon S3 para gerar um URL pré-assinado para compartilhar um objeto em um bucket de uso geral seguindo estas etapas. Ao usar o console, o tempo máximo de validade de um URL pré-assinado é de 12 horas a partir do momento da criação.

**Para gerar um URL pré-assinado usando o console do Amazon 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 de buckets, selecione o nome do bucket que contém os objetos para os quais você deseja obter um URL pré-assinado.

1. Na lista **Objects** (Objetos), selecione o objeto para o qual deseja criar um URL pré-assinado.

1. No menu **Ações de objeto**, escolha **Compartilhar com um URL pré-assinado**.

1. Especifique por quanto tempo deseja que o URL pré-assinado seja válido.

1. Escolha **Create presigned URL** (Criar URL pré-assinado).

1. Quando uma mensagem de confirmação é exibida, o URL é copiado automaticamente para a área de transferência. Você verá um botão para copiar o URL pré-assinado se precisar copiá-lo novamente.

1. Para baixar o objeto, cole o URL em qualquer navegador para que o objeto tente fazer download.

Para obter mais informações sobre URLs pré-assinados e outros métodos para criá-los, consulte [Baixar e fazer upload de objetos com URLs pré-assinados](using-presigned-url.md).

## Baixar objetos arquivados
<a name="download-archived-objects"></a>

Para reduzir os custos de armazenamento de objetos acessados com pouca frequência, você pode *arquivar* esses objetos. Quando você arquiva um objeto, ele é movido para um armazenamento de baixo custo, o que significa que não é possível acessá-lo em tempo real. Para baixar um objeto arquivado, você deve restaurá-lo primeiro. 

Os objetos arquivados podem ser restaurados em minutos ou horas, dependendo da classe de armazenamento. Você pode restaurar um objeto arquivado usando o console do Amazon S3, Operações em Lote do S3, a API REST do Amazon S3, os AWS SDKs e a AWS Command Line Interface (AWS CLI).

Para instruções, consulte [Restaurar um objeto arquivado](restoring-objects.md). Depois de restaurar o objeto arquivado, você poderá baixá-lo. 

## Baixar objetos com base em metadados
<a name="download-objects-based-on-metadata"></a>

É possível adicionar condições prévias para baixar um objeto com base nos respectivos metadados usando uma solicitação de leitura condicional. Você pode exibir um objeto com base na tag da entidade (ETag) ou na data da última modificação. Isso pode limitar uma operação do S3 a objetos atualizados desde uma data especificada ou exibir somente uma versão específica de um objeto.

É possível usar gravações condicionais para solicitações [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) ou [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html).

Para ter mais informações sobre solicitações condicionais, consulte [Adicionar condições prévias às operações do S3 com solicitações condicionais](conditional-requests.md).

## Solução de problemas de download de objetos
<a name="download-objects-troubleshooting"></a>

Permissões insuficientes ou políticas incorretas de bucket ou de usuário do AWS Identity and Access Management (IAM) podem causar erros ao tentar baixar objetos do Amazon S3. Esses problemas geralmente podem provocar erros de acesso negado (403 proibido), nos quais o Amazon S3 não consegue permitir o acesso a um recurso.

Para ver as causas comuns de erros de acesso negado (403 proibido), consulte [Solucionar erros de acesso negado (403 Forbidden) no Amazon S3](troubleshoot-403-errors.md).

Se você estiver recebendo um erro 404 NoSuchKey ao tentar acessar um objeto, consulte [Como posso solucionar o erro 404 “NoSuchKey” do Amazon S3?](https://repost.aws/knowledge-center/404-error-nosuchkey-s3) no Centro de Conhecimento do AWS re:Post.