Como posso verificar a integridade de um objeto carregado para o Amazon S3?

2 minuto de leitura
0

Quero fazer upload de um objeto em um bucket do Amazon Simple Storage Service (Amazon S3). Além disso, quero verificar a integridade do objeto carregado. Como posso fazer isso?

Breve descrição

Siga estas etapas para verificar a integridade dos objetos carregados usando o cabeçalho Content-MD5:

Observação: ao utilizar o cabeçalho Content-MD5, o Amazon S3 verifica o objeto em relação ao valor do Content-MD5 fornecido. Se os valores não corresponderem, você receberá um erro.

1.    Calcule o valor do Content-MD5 do objeto.

2.    Verifique a integridade do objeto carregado passando o valor do Content-MD5 como cabeçalho da solicitação durante o carregamento do objeto.

Resolução

Calcule o valor do Content-MD5 do objeto

SO Windows

Se você estiver usando um sistema operacional Windows, poderá usar o cmdlet Get-FileHash do Microsoft PowerShell Utility para calcular o resumo MD5, assim:

Get-FileHash \path\to\file -algorithm MD5 | Format-List

Observação: O cmdlet Get-FileHash está disponível com o Microsoft PowerShell Utility versão 4.0 e posterior.

Aqui está um exemplo de saída:

Algorithm : MD5
Hash      : C9A5A6878D97B48CC965C1E41859F034
Path      : \path\to\file

Em seguida, aplique a codificação base64 ao resumo MD5 calculado para obter o valor do Content-MD5 necessário:

$hashString ='C9A5A6878D97B48CC965C1E41859F034'
$hashByteArray = [byte[]] ($hashString -replace '..', '0x$&,' -split ',' -ne '')
$ContentMD5 = [System.Convert]::ToBase64String($hashByteArray)
Echo $ContentMD5
yaWmh42XtIzJZcHkGFnwNA==

Neste exemplo, a saída do Echo $ContentMD5, (“yaWmh42XtIzJZcHkGFnwNA==”), é o valor do Content-MD5 necessário.

SO Linux

Se você estiver usando um sistema operacional Linux, execute o seguinte comando OpenSSL para obter o valor do Content-MD5 do seu arquivo:

openssl md5 -binary PATH/TO/FILE | base64

Verificar a integridade do objeto carregado

Ao usar o PutObject para carregar objetos para o Amazon S3, passe o valor do Content-MD5 como cabeçalho da solicitação. O Amazon S3 verifica o objeto em relação ao valor do Content-MD5 fornecido. Se os valores não corresponderem, você receberá um erro.

O cabeçalho Content-MD5 da solicitação também pode ser usado com a API S3 UploadPart.


Informações relacionadas

Cabeçalhos de solicitação comuns

Respostas de erro do S3

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos