Esta página destina-se somente a clientes atuais do serviço S3 Glacier que usam cofres e a API REST original de 2012.
Se você estiver procurando soluções de armazenamento de arquivos, sugerimos usar as classes de armazenamento do S3 Glacier no 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 S3 Glacier
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á.
Fazer upload de arquivos grandes usando AWS CLI
Você pode fazer upload de um arquivo no Amazon S3 Glacier (S3 Glacier) usando o AWS Command Line Interface (AWS CLI). Para melhorar a experiência de upload de arquivos maiores, o S3 Glacier fornece várias operações de API compatíveis com multipart uploads. 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 multipart uploads, consulte Fazer upload de arquivos grandes em partes (Multipart Upload).
Tópicos
(Pré-requisito) Configurar a AWS CLI
-
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:
-
Verifique a configuração digitando os comandos a seguir 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 S3 Glacier na conta configurada, use o comando
list-vaults
. Substitua123456789012
pelo ID da sua Conta da AWS.aws glacier list-vaults --account-id
123456789012
-
Para obter os dados da configuração atual para a AWS CLI, use o comando
aws configure list
.aws configure list
-
(Pré-requisito) Instalar Python
Para concluir um multipart upload, você deve calcular o tree hash SHA256 do arquivo que você está carregando. Fazer isso é diferente de calcular o tree hash SHA256 do arquivo que você deseja carregar. Para calcular o tree hash SHA256 do arquivo que você está carregando, pode se usar Java, C# (com .NET) ou Python. Neste exemplo, usaremos Python. Para obter instruções sobre como usar Java ou C#, consulteComputar somas de verificação.
Para obter informações sobre como instalar ou atualizar Python, consulte Instalar a Python
(Pré-requisito) Crie um S3 Glacier Vault
Para usar o exemplo a seguir, você deve ter pelo menos um cofre do S3 Glacier criado. Para obter mais informações sobre a criação de cofres, consulte Criação de um cofre no Amazon S3 Glacier.
Exemplo: fazer upload de um arquivo grande em partes usando AWS CLI
Neste exemplo, você criará um arquivo e usará operações de API de multipart upload para fazer upload desse arquivo, em partes, no Amazon S3 Glacier.
Importante
Antes de iniciar este procedimento, verifique se você executou todas as etapas pré-requisitos. Para carregar um arquivo, você deve ter um cofre criado, AWS CLI configurado e estar preparado para usar Java, C#, ou calcular um tree hash Python SHA256.
O procedimento a seguir usa os comandos initiate-multipart-upload
upload-multipart-part
, e complete-multipart-upload
AWS CLI.
Para obter mais informações sobre esses comandos, consulte initiate-multipart-upload,upload-multipart-part, na seção complete-multipart-upload da Referência de comandos da AWS CLI.
-
Use o comando initiate-multipart-upload 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-size1048576
--account-id123456789012
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 multipart upload no S3 Glacier. Você usará este ID de carregamento nas etapas subsequentes.
-
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 -
Em seguida, você dividirá esse arquivo em pedaços de 1 MiB.
split -b 1048576
file_to_upload
chunkVocê 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
-
Use o comando upload-multipart-part 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 comandoinitiate-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 comandoinitiate-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-nameawsexamplevault
--account-id123456789012
--upload-idupload_ID
Se for bem-sucedido, o comando produzirá uma saída que contém a soma de verificação da peça carregada.
-
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-nameawsexamplevault
--account-id123456789012
--upload-idupload_ID
aws glacier upload-multipart-part --body
chunkac
--range='bytes 2097152-3145727/*'
--vault-nameawsexamplevault
--account-id123456789012
--upload-idupload_ID
aws glacier upload-multipart-part --body
chunkad
--range='bytes 3145728-4194303/*'
--vault-nameawsexamplevault
--account-id123456789012
--upload-idupload_ID
aws glacier upload-multipart-part --body
chunkae
--range='bytes 4194304-4607999/*'
--vault-nameawsexamplevault
--account-id123456789012
--upload-idupload_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. -
Em seguida, você montará o arquivo e finalizará o upload. Você deve incluir o tamanho total e o tree hash SHA256 do arquivo.
Para calcular o tree hash SHA256 do arquivo, você pode usar Java C# ou Python. Neste exemplo, usaremos Python. Para obter instruções sobre como usar Java ou C#, consulteComputar somas de verificação.
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) -
Execute
checksum.py
para calcular o tree hash SHA256. O hash a seguir pode não corresponder à sua saída.$
python3 checksum.py$
3d760edb291bfc9d90d35809243de092aea4c47b308290ad12d084f69988ae0c -
Use o comando complete-multipart-upload 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-nameawsexamplevault
--account-id123456789012
--upload-idupload_ID
--checksumchecksum
Quando concluído, o comando exibirá o ID, a soma de verificação e a localização do arquivo no S3 Glacier.