¿Cómo puedo comprobar la integridad de un objeto cargado en Amazon S3?

2 minutos de lectura
0

Quiero subir un objeto a un bucket de Amazon Simple Storage Service (Amazon S3). Además, quiero verificar la integridad del objeto cargado. ¿Cómo puedo hacerlo?

Descripción breve

Siga estos pasos para comprobar la integridad de los objetos cargados mediante el encabezado Content-MD5:

Nota: Cuando utiliza el encabezado Content-MD5, Amazon S3 compara el objeto con el valor Content-MD5 proporcionado. Si los valores no coinciden, recibirá un error.

1.    Calcule el valor Content-MD5 del objeto.

2.    Para comprobar la integridad del objeto cargado, pase el valor Content-MD5 como encabezado de solicitud durante la carga del objeto.

Resolución

Calcular el valor Content-MD5 del objeto

Sistema operativo Windows

Si utiliza un sistema operativo Windows, puede usar el cmdlet Get-FileHash de Microsoft PowerShell Utility para calcular el resumen MD5, de la siguiente manera:

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

Nota: El cmdlet Get-FileHash está disponible con la versión 4.0 y versiones posteriores de Microsoft PowerShell Utility.

Este es un ejemplo de salida:

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

A continuación, aplique la codificación base64 al resumen MD5 calculado para obtener el valor Content-MD5 requerido:

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

En este ejemplo, la salida de Echo $ContentMD5, («yaWmh42XtIzJZcHkGFnwNA==») es el valor Content-MD5 requerido.

Sistema operativo Linux

Si utiliza un sistema operativo Linux, ejecute el siguiente comando de OpenSSL para obtener el valor Content-MD5 del archivo:

openssl md5 -binary PATH/TO/FILE | base64

Verificar la integridad del objeto cargado

Cuando utilice PutObject para cargar objetos en Amazon S3, pase el valor Content-MD5 como encabezado de solicitud. Amazon S3 compara el objeto con el valor Content-MD5 proporcionado. Si los valores no coinciden, recibirá un error.

El encabezado de solicitud Content-MD5 también se puede usar con la API S3 UploadPart .


Información relacionada

Encabezados de solicitud comunes

Respuestas de error de S3

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años