

 **Esta página destina-se somente a clientes atuais do serviço Amazon Glacier que usam cofres e a API REST original de 2012.**

Se você estiver procurando soluções de armazenamento de arquivos do Amazon Glacier, recomendamos usar as classes de armazenamento do Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive. Para saber mais sobre essas opções de armazenamento, consulte [Classes de armazenamento do Amazon Glacier](https://aws.amazon.com/s3/storage-classes/glacier/).

O Amazon Glacier (serviço autônomo original baseado em cofre) não está mais aceitando novos clientes. O Amazon Glacier é um serviço independente APIs que armazena dados em cofres e é diferente das classes de armazenamento Amazon S3 e Amazon S3 Glacier. Seus dados existentes permanecerão seguros e acessíveis no Amazon Glacier indefinidamente. Nenhuma migração é necessária. Para armazenamento de arquivamento de baixo custo e longo prazo, AWS recomenda as classes de armazenamento [Amazon S3 Glacier](https://aws.amazon.com/s3/storage-classes/glacier/), que oferecem uma experiência superior ao cliente com APIs base em buckets S3, disponibilidade Região da AWS total, custos mais baixos e integração de serviços. AWS Se você quiser recursos aprimorados, considere migrar para as classes de armazenamento do Amazon S3 Glacier usando nossas [Orientações de soluções da AWS para transferir dados dos cofres do Amazon Glacier para as classes de armazenamento do Amazon S3 Glacier](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Fazendo upload de arquivos grandes usando o AWS CLI
<a name="uploading-an-archive-mpu-using-cli"></a>

Você pode fazer upload de um arquivo no Amazon Glacier (Amazon Glacier) usando o AWS Command Line Interface ().AWS CLI Para melhorar a experiência de upload de arquivos maiores, o Amazon Glacier fornece várias operações de API compatíveis com uploads multiparte. Ao usar essas operações de API, você pode fazer upload de arquivos em partes. O upload dessas partes pode ser feito de maneira independente, em qualquer ordem, e em paralelo. Em caso de falha de um upload da parte, você precisa refazer o upload dessa parte, e não de todo o arquivo. Você pode usar um multipart uploads para arquivos de 1 byte até aproximadamente 40.000 GiB. 

Para obter mais informações sobre uploads multiparte do Amazon Glacier, consulte [Fazer upload de arquivos grandes em partes (Multipart Upload)](uploading-archive-mpu.md).

**Topics**
+ [(Pré-requisito) Configurando o AWS CLI](#Creating-Vaults-CLI-Setup)
+ [(Pré-requisito) Instalar Python](#Uploading-Archives-mpu-CLI-Install-Python)
+ [(Pré-requisito) Crie um cofre do Amazon Glacier](#Uploading-Archives-mpu-CLI-Create-Vault)
+ [Exemplo: Fazer upload de arquivos grandes em partes usando o AWS CLI](#Uploading-Archives-mpu-CLI-Implementation)

## (Pré-requisito) Configurando o AWS CLI
<a name="Creating-Vaults-CLI-Setup"></a>

1. Faça download e configure a AWS CLI. Para obter instruções, consulte os seguintes tópicos no *Guia do usuário do AWS Command Line Interface *: 

    [Instalando o AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 

   [Configurando o AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)

1. Verifique sua AWS CLI configuração inserindo os seguintes comandos no prompt de comando. Esses comandos não fornecem as credenciais explicitamente, de modo que as credenciais do perfil padrão são usadas.
   + Tente usar o comando de ajuda.

     ```
     aws help
     ```
   + Para obter uma lista dos cofres do Amazon Glacier na conta configurada, use o comando `list-vaults`. *123456789012*Substitua pelo seu Conta da AWS ID.

     ```
     aws glacier list-vaults --account-id 123456789012
     ```
   + Para ver os dados de configuração atuais do AWS CLI, use o `aws configure list` comando.

     ```
     aws configure list
     ```

## (Pré-requisito) Instalar Python
<a name="Uploading-Archives-mpu-CLI-Install-Python"></a>

Para concluir um upload de várias partes, você deve calcular o hash da SHA256 árvore do arquivo que você está carregando. Fazer isso é diferente de calcular o hash da SHA256 árvore do arquivo que você deseja carregar. Para calcular o hash da SHA256 árvore do arquivo que você está carregando, você pode usar Java C\$1 (com .NET) ou. Python Neste exemplo, usaremos Python. Para obter instruções sobre como usar Java ou C\$1, consulte[Computar somas de verificação](checksum-calculations.md). 

Para obter informações sobre como instalar ou atualizar Python, consulte [Instalar a Python](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation) no *Guia do usuário Boto3*.

## (Pré-requisito) Crie um cofre do Amazon Glacier
<a name="Uploading-Archives-mpu-CLI-Create-Vault"></a>

Para usar o exemplo a seguir, você deve ter pelo menos um cofre do Amazon Glacier criado. Para obter mais informações sobre a criação de cofres, consulte [Criar um cofre no Amazon Glacier](creating-vaults.md).

## Exemplo: Fazer upload de arquivos grandes em partes usando o AWS CLI
<a name="Uploading-Archives-mpu-CLI-Implementation"></a>

Neste exemplo, você criará um arquivo e usará operações de API de multipart upload para fazer upload desse arquivo, em partes, no Amazon Glacier.
**Importante**  
Antes de iniciar este procedimento, verifique se você executou todas as etapas pré-requisitos. Para fazer upload de um arquivo, você deve ter um cofre criado, AWS CLI configurado e estar preparado para usar Java C\$1 ou Python calcular um hash de SHA256 árvore.

O procedimento a seguir usa os `complete-multipart-upload` AWS CLI comandos `initiate-multipart-upload``upload-multipart-part`, e. 

Para obter mais informações sobre esses comandos, consulte [https://docs.aws.amazon.com/cli/latest/reference/glacier/initiate-multipart-upload.html](https://docs.aws.amazon.com/cli/latest/reference/glacier/initiate-multipart-upload.html),[https://docs.aws.amazon.com/cli/latest/reference/glacier/upload-multipart-part.html](https://docs.aws.amazon.com/cli/latest/reference/glacier/upload-multipart-part.html), na seção [https://docs.aws.amazon.com/cli/latest/reference/glacier/complete-multipart-upload.html](https://docs.aws.amazon.com/cli/latest/reference/glacier/complete-multipart-upload.html) da *Referência de comandos da AWS CLI *.

1. Use o comando [https://docs.aws.amazon.com/cli/latest/reference/glacier/initiate-multipart-upload.html](https://docs.aws.amazon.com/cli/latest/reference/glacier/initiate-multipart-upload.html) para criar um recurso de multipart upload. Na solicitação para iniciar um upload multipartes, especifique o tamanho da parte em número de bytes. Cada parte do upload, exceto a última, deve ser desse tamanho. Você não precisa saber o tamanho do arquivo geral ao usar o upload multipartes. No entanto, você precisará do tamanho total, em bytes, de cada parte ao concluir o upload na etapa final.

   No comando a seguir, substitua os valores dos parâmetros `--vault-name` e `--account-ID` por suas próprias informações. Esse comando especifica que você fará o upload de um arquivo com um tamanho de 1 mebibyte (MiB) (1024 x 1024 bytes) por arquivo. Substitua esse valor de parâmetro `--part-size`, se necessário. 

   ```
   aws glacier initiate-multipart-upload --vault-name awsexamplevault --part-size 1048576 --account-id 123456789012
   ```

   Saída esperada:

   ```
   {
   "location": "/123456789012/vaults/awsexamplevault/multipart-uploads/uploadId",
   "uploadId": "uploadId"
   }
   ```

   Quando concluído, o comando exibirá o ID de upload e a localização do recurso de upload multiparte no Amazon Glacier. Você usará este ID de carregamento nas etapas subsequentes.

1. Neste exemplo, você pode usar os comandos a seguir para criar um arquivo de 4,4 MiB, dividi-lo em partes de 1 MiB e fazer upload de cada parte. Para fazer upload de seus próprios arquivos, você pode seguir um procedimento semelhante de dividir seus dados em partes e fazer o upload de cada parte. 

   

**Linux ou macOS**  
O comando a seguir cria um arquivo de 4,4 MiB, chamado `file_to_upload`, no Linux ou no macOS.

   ```
   mkfile -n 9000b file_to_upload
   ```

**Windows**  
O comando a seguir cria um arquivo de 4,4 MiB, chamado `file_to_upload`, no Windows.

   ```
   fsutil file createnew file_to_upload 4608000
   ```

1. Em seguida, você dividirá esse arquivo em pedaços de 1 MiB. 

   ```
   split -b 1048576 file_to_upload chunk
   ```

   Você agora tem os cinco blocos a seguir. Os quatro primeiros têm 1 MiB e o último tem aproximadamente 400 kibibytes (KiB). 

   ```
   chunkaa
   chunkab
   chunkac
   chunkad
   chunkae
   ```

1. Use o comando [https://docs.aws.amazon.com/cli/latest/reference/glacier/upload-multipart-part.html](https://docs.aws.amazon.com/cli/latest/reference/glacier/upload-multipart-part.html) para carregar uma parte de um arquivo. Você pode fazer upload de arquivos em partes. Você também pode fazer upload de partes em paralelo. Você pode fazer upload de até 10.000 partes de um multipart upload.

   No comando a seguir, substitua os valores dos parâmetros `--vault-name`, `--account-ID` e `--upload-id`. O ID de upload deve corresponder ao ID fornecido como saída do comando `initiate-multipart-upload`. O parâmetro `--range` especifica que você fará o upload de uma peça com um tamanho de 1 MiB (1024 x 1024 bytes). Esse tamanho deve corresponder ao que você especificou no comando `initiate-multipart-upload`. Ajuste esse valor de tamanho, se necessário. O parâmetro `--body` especifica o nome da parte que você está carregando.

   ```
   aws glacier upload-multipart-part --body chunkaa --range='bytes 0-1048575/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
   ```

   Se for bem-sucedido, o comando produzirá uma saída que contém a soma de verificação da peça carregada.

1. Execute o comando `upload-multipart-part` novamente para carregar as partes restantes do multipart upload. Atualize os valores dos parâmetros `--range` e `–-body` de cada comando para que correspondam à parte que você está carregando. 

   ```
   aws glacier upload-multipart-part --body chunkab --range='bytes 1048576-2097151/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
   ```

   ```
   aws glacier upload-multipart-part --body chunkac --range='bytes 2097152-3145727/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
   ```

   ```
   aws glacier upload-multipart-part --body chunkad --range='bytes 3145728-4194303/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
   ```

   ```
   aws glacier upload-multipart-part --body chunkae --range='bytes 4194304-4607999/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
   ```
**nota**  
O valor do parâmetro do comando final `--range` é menor porque a parte final do nosso upload é menor que 1 MiB. Se for bem-sucedido, cada comando produzirá uma saída que contém a soma de verificação de cada parte carregada.

1. Em seguida, você montará o arquivo e finalizará o upload. Você deve incluir o tamanho total e o hash da SHA256 árvore do arquivo.

   Para calcular o hash da SHA256 árvore do arquivo, você pode usar Java C\$1 ou. Python Neste exemplo, usaremos Python. Para obter instruções sobre como usar Java ou C\$1, consulte[Computar somas de verificação](checksum-calculations.md).

   Crie o Python arquivo `checksum.py` e insira o código a seguir. Se necessário, substitua o nome do arquivo original.

   ```
   from botocore.utils import calculate_tree_hash
   					
   checksum = calculate_tree_hash(open('file_to_upload', 'rb'))
   print(checksum)
   ```

1. Execute `checksum.py` para calcular o hash SHA256 da árvore. O hash a seguir pode não corresponder à sua saída.

   ```
   $ python3 checksum.py
   $ 3d760edb291bfc9d90d35809243de092aea4c47b308290ad12d084f69988ae0c
   ```

1. Use o comando [https://docs.aws.amazon.com/cli/latest/reference/glacier/complete-multipart-upload.html](https://docs.aws.amazon.com/cli/latest/reference/glacier/complete-multipart-upload.html) para finalizar o upload do arquivo. Substitua os valores dos parâmetros `--vault-name`, `--account-ID`, `--upload-ID` e `--checksum`. O valor do parâmetro `--archive` especifica o tamanho total, em bytes, do arquivo. Esse valor deve ser a soma de todos os tamanhos das partes individuais cujo upload você fez. Substitua esse valor, se necessário. 

   ```
   aws glacier complete-multipart-upload --archive-size 4608000 --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID --checksum checksum
   ```

   Quando concluído, o comando exibirá o ID, a soma de verificação e a localização do arquivo no Amazon Glacier. 