Complete Multipart Upload (POST uploadID) - Amazon S3 Glacier

Se você for novato no armazenamento de arquivo no Amazon Simple Storage Service (Amazon S3), recomendamos que comece aprendendo mais sobre as classes de armazenamento do S3 Glacier no Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive. Para obter mais informações, consulte Classes de armazenamento S3 Glacier e Classes de armazenamento para arquivamento de objetos no Guia do usuário do 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á.

Complete Multipart Upload (POST uploadID)

Descrição

Você chama essa operação multipart upload para informar ao Amazon S3 Glacier (S3 Glacier) que o upload de todas as partes do arquivo foi feito e que o S3 Glacier agora pode montar o arquivo com base nas partes carregadas.

Para obter informações sobre o multipart upload, consulte Fazer upload de arquivos grandes em partes (Multipart Upload).

Depois da montagem e da gravação do arquivo no cofre, o S3 Glacier retornará o ID de arquivo do recurso de arquivo recém-criado. Depois de fazer upload de um arquivo, você deve salvar o ID do arquivo retornado para recuperar o arquivo mais tarde.

Na solicitação, você deve incluir o hash de árvore SHA256 computado de todo o arquivo cujo upload foi feito. Para obter informações sobre como computar um hash de árvore SHA256, consulte Computar somas de verificação. No lado do servidor, o S3 Glacier também cria o hash de árvore SHA256 do arquivo montado. Se os valores forem correspondentes, o S3 Glacier salvará o arquivo no cofre; do contrário, ele retornará um erro e a operação falhará. A operação List Parts (GET uploadID) retorna uma lista de partes cujo upload foi feito para um multipart upload específico. Ela inclui informações da soma de verificação de cada parte carregada que podem ser usadas para depurar um problema de soma de verificação inválida.

Além disso, o S3 Glacier também verifica se há intervalos de conteúdo não encontrados. Ao fazer upload de partes, você especifica valores de intervalo identificando onde cada parte fica na montagem final do arquivo. Ao montar o arquivo final, o S3 Glacier verifica se há algum intervalo de conteúdo não encontrado e, se houver algum intervalo de conteúdo não encontrado, o S3 Glacier retornará um erro e a operação Complete Multipart Upload falhará.

Complete Multipart Upload é uma operação idempotente. Depois do primeiro complete multipart upload bem-sucedido, se você chamar a operação novamente dentro de um curto período, a operação será bem-sucedida e retornará o mesmo ID do arquivo. Isso será útil se você enfrentar um problema de rede ou receber um erro de servidor 500, quando poderá repetir a solicitação Complete Multipart Upload e obter o mesmo ID de arquivo sem criar arquivos duplicados. No entanto, depois que o multipart upload for concluído, você não poderá chamar a operação List Parts, e o multipart upload não será exibido na resposta List Multipart Uploads, mesmo se for possível uma conclusão idempotente.

Solicitações

Para concluir um multipart upload, você envia uma solicitação HTTP POST para o URI do ID de upload criado pelo S3 Glacier em resposta à solicitação Initiate Multipart Upload. Esse é o mesmo URI usado por você ao fazer upload das partes. Além dos cabeçalhos obrigatórios comuns, você deve incluir o resultado do hash de árvore SHA256 de todo o arquivo e o tamanho total do arquivo em bytes.

Sintaxe

POST /AccountId/vaults/VaultName/multipart-uploads/uploadID Host: glacier.Region.amazonaws.com Date: date Authorization: SignatureValue x-amz-sha256-tree-hash: SHA256 tree hash of the archive x-amz-archive-size: ArchiveSize in bytes x-amz-glacier-version: 2012-06-01

nota

O valor de AccountId é o ID de Conta da AWS da conta proprietária do cofre. Você pode especificar um ID de Conta da AWS ou, de forma opcional, um '-' (hífen) único; nesse caso, o Amazon S3 Glacier usa o ID de Conta da AWS associado às credenciais usadas para assinar a solicitação. Se você usar um ID de conta, não inclua nenhum hífen ('-') no ID.

Parâmetros de solicitação

Essa operação não usa parâmetros de solicitação.

Cabeçalhos de solicitação

Essa operação usa os seguintes cabeçalhos de solicitação, além dos cabeçalhos de solicitação que são comuns a todas as operações. Para mais informações sobre os cabeçalhos de solicitação comuns, consulte Cabeçalhos de solicitação comuns.

Name (Nome) Descrição Obrigatório
x-amz-archive-size

O tamanho total, em bytes, de todo o arquivo. Esse valor deve ser a soma de todos os tamanhos das partes individuais cujo upload você fez.

Tipo: string

Padrão: nenhum

Restrições: nenhuma

Sim
x-amz-sha256-tree-hash

O hash de árvore SHA256 de todo o arquivo. Trata-se do hash de árvore SHA256 das partes individuais. Se o valor especificado por você na solicitação não corresponder ao hash de árvore SHA256 do arquivo montado final computado pelo S3 Glacier, o S3 Glacier retornará um erro e a solicitação falhará.

Tipo: string

Padrão: nenhum

Restrições: nenhuma

Sim

Elementos da solicitação

Essa operação não usa elementos de solicitação.

Respostas

O Amazon S3 Glacier (S3 Glacier) cria um hash de árvore SHA256 de todo o arquivo. Se o valor corresponder ao hash de árvore SHA256 de todo o arquivo especificado por você na solicitação, o S3 Glacier adicionará o arquivo ao cofre. Em resposta, ele retorna o cabeçalho Location HTTP com o caminho de URL do recurso de arquivo recém-adicionado. Se o tamanho do arquivo ou SHA256 enviado por você na solicitação não for correspondente, o S3 Glacier retornará um erro e o upload permanecerá no estado incompleto. Será possível tentar novamente a operação Complete Multipart Upload depois com valores corretos, quando você poderá criar um arquivo com êxito. Se um multipart upload não for concluído, o S3 Glacier acabará recuperando o ID do upload.

Sintaxe

HTTP/1.1 201 Created x-amzn-RequestId: x-amzn-RequestId Date: Date Location: Location x-amz-archive-id: ArchiveId

Cabeçalhos de resposta

Uma resposta bem-sucedida inclui os seguintes cabeçalhos de resposta, além dos cabeçalhos de resposta que são comuns a todas as operações. Para mais informações sobre os cabeçalhos de resposta comuns, consulte Cabeçalhos de resposta comuns.

Name (Nome) Descrição
Location

O caminho do URI relativo do arquivo recém-criado. Esse URL inclui o ID de arquivo gerado pelo S3 Glacier.

Tipo: string

x-amz-archive-id

O ID do arquivo. Esse valor também está incluído como parte do cabeçalho Location.

Tipo: string

Campos de resposta

Essa operação não retorna um corpo de resposta.

Exemplo

Exemplo de solicitação

Neste exemplo, uma solicitação HTTP POST é enviada para o URI que foi retornado por uma solicitação Initiate Multipart Upload. A solicitação especifica o hash de árvore SHA256 de todo o arquivo e o tamanho total do arquivo.

POST /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com z-amz-Date: 20170210T120000Z x-amz-sha256-tree-hash:1ffc0f54dd5fdd66b62da70d25edacd0 x-amz-archive-size:8388608 x-amz-glacier-version: 2012-06-01 Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-date;x-amz-glacier-version,Signature=9257c16da6b25a715ce900a5b45b03da0447acf430195dcb540091b12966f2a2

Exemplo de resposta

A resposta de exemplo a seguir mostra que o S3 Glacier criou com êxito um arquivo das partes cujo upload você fez. A resposta inclui o ID de arquivo com caminho completo.

HTTP/1.1 201 Created x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Location: /111122223333/vaults/examplevault/archives/NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId x-amz-archive-id: NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId

Agora você pode enviar solicitações HTTP para o URI do recurso/arquivo recém-adicionado. Por exemplo, você pode enviar uma solicitação GET para recuperar o arquivo.