Finalización de una carga multiparte (POST uploadID) - Amazon S3 Glacier

Si aún no se ha familiarizado con el almacenamiento de archivos en Amazon Simple Storage Service (Amazon S3), se recomienda que comience por obtener más información sobre las clases de almacenamiento de S3 Glacier en Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive. Para obtener más información, consulte Clases de almacenamiento de S3 Glacier y Clases de almacenamiento para archivar objetos en la Guía del usuario de Amazon S3.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Finalización de una carga multiparte (POST uploadID)

Descripción

Puede llamar a esta operación de carga multiparte para informar a Amazon S3 Glacier (S3 Glacier) de que se han cargado todas las partes de archivo y de que S3 Glacier ahora puede montar el archivo a partir de las partes cargadas.

Para obtener información sobre la carga multiparte, consulte Carga de archivos grandes por partes (carga multiparte).

Después de montar y guardar el archivo en el almacén, S3 Glacier devuelve el ID de archivo del recurso de archivo creado recientemente. Tras cargar un archivo, debe guardar el ID de archivo devuelto para recuperar el archivo en otro momento.

En la solicitud, debe incluir el algoritmo hash en árbol SHA256 calculado de todo el archivo que ha cargado. Para obtener información acerca de cómo calcular un hash en árbol SHA256, consulte Cálculo de sumas de comprobación. En el servidor, S3 Glacier también construye el algoritmo hash en árbol SHA256 del archivo montado. Si los valores coinciden, S3 Glacier guarda el archivo en el almacén; de lo contrario, devuelve un error y se produce un error en la operación. La operación Enumeración de partes (GET uploadID) devuelve la lista de las partes cargadas para una carga multiparte específica. Incluye la información de suma de comprobación de cada carga parte que se puede usar para depurar un problema de suma de comprobación.

Además, S3 Glacier también comprueba si faltan rangos de contenido. Al cargar las partes, especifique los valores de rango que identifican dónde encaja cada parte en el montaje final del archivo. Al montar el archivo final, S3 Glacier busca si faltan rangos de contenido y, en caso de que falten, devuelve un error, por lo que no se realiza la operación de completar la carga multiparte.

La operación de completar carga multiparte es idempotente. Después de completar correctamente por primera vez la carga multiparte, si vuelve a llamar a la operación en un breve periodo, esta se realizará correctamente y devolverá el mismo ID de archivo. Esto resulta útil si tiene un problema de red o recibe un error de servidor 500, en cuyo caso puede repetir la solicitud de completar carga multiparte y obtener el mismo ID de archivo sin crear archivos duplicados. Sin embargo, tenga en cuenta que, después de que se complete la carga multiparte, no puede llamar a la operación de enumeración de partes y la carga multiparte no aparecerá en la respuesta de enumerar cargas multiparte aunque sea posible la realización idempotente.

Solicitudes

Para completar una carga multiparte, envíe una solicitud HTTP POST al URI del ID de la carga que S3 Glacier ha creado en respuesta a la solicitud de inicio de carga multiparte. Es el mismo URI que ha usado al cargar las partes. Además de los encabezados obligatorios comunes, debe incluir el resultado del hash en árbol SHA256 de todo el archivo y el tamaño total del archivo en bytes.

Sintaxis

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

El valor AccountId es el ID de la Cuenta de AWS propietaria del almacén. Puede especificar un ID de Cuenta de AWS o, si lo desea, un solo carácter “-” (guion), en cuyo caso, Amazon S3 Glacier usa el ID de la Cuenta de AWS asociada con las credenciales empleadas para firmar la solicitud. Si usa un ID de cuenta, no incluya ningún guion (“-”) en el ID.

Parámetros de solicitud

Esta operación no usa parámetros de solicitud.

Encabezados de solicitud

Esta operación utiliza los siguientes encabezados de solicitud, además de los encabezados de solicitud comunes a todas las operaciones. Para obtener más información acerca de los encabezados de solicitudes comunes, consulte Encabezados de solicitudes comunes.

Nombre Descripción Obligatorio
x-amz-archive-size

El tamaño total, en bytes, de todo el archivo. Este valor debe ser la suma de todos los tamaños de las partes individuales que ha cargado.

Tipo: String

Valor predeterminado: None

Restricciones: ninguna

x-amz-sha256-tree-hash

El hash en árbol SHA256 de todo el archivo. Es el hash en árbol SHA256 de las partes individuales. Si el valor que especifique en la solicitud no coincide con el hash en árbol SHA256 del archivo montado final tal como lo ha calculado S3 Glacier, este último devuelve un error y no se puede realizar la solicitud.

Tipo: String

Valor predeterminado: None

Restricciones: ninguna

Elementos de la solicitud

Esta operación no usa los elementos de la solicitud.

Respuestas

Amazon S3 Glacier (S3 Glacier) crea un hash en árbol SHA256 de todo el archivo. Si el valor coincide con el hash en árbol SHA256 de todo el archivo que ha especificado en la solicitud, S3 Glacier agrega el archivo al almacén. En respuesta, devuelve el encabezado HTTP Location con la ruta URL del recurso de archivo agregado recientemente. Si el tamaño de archivo o SHA256 que ha enviado en la solicitud no coincide, S3 Glacier devolverá un error y la carga permanece en estado incompleto. Es posible reintentar la operación de finalización de carga multiparte posteriormente con los valores correctos, en cuyo momento puede crear correctamente un archivo. Si no se completa una carga multiparte, S3 Glacier reclamará finalmente el ID de carga.

Sintaxis

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

Encabezados de respuesta

Una respuesta correcta incluye los siguientes encabezados de respuesta, además de los encabezados de respuesta comunes a todas las operaciones. Para obtener más información acerca de los encabezados de respuesta comunes, consulte Encabezados de respuesta comunes.

Nombre Descripción
Location

La ruta del URI relativo del archivo creado recientemente. Esta URL incluye el ID de archivo que S3 Glacier ha generado.

Tipo: String

x-amz-archive-id

El ID del archivo. Este valor también forma parte del encabezado Location.

Tipo: String

Campos de respuesta

Esta operación no devuelve ningún cuerpo de respuesta.

Ejemplo

Solicitud de ejemplo

En este ejemplo, se envía una solicitud HTTP POST al URI que devolvió una solicitud de inicio de carga multiparte. La solicitud especifica el hash en árbol SHA256 de todo el archivo y el tamaño total del archivo.

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

Respuesta de ejemplo

En el siguiente ejemplo de respuesta se muestra que S3 Glacier ha creado correctamente un archivo a partir de las partes que ha cargado. La respuesta incluye el ID de archivo con la ruta completa.

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

Ahora puede enviar solicitudes HTTP al URI del recurso/archivo creado recientemente. Por ejemplo, puede enviar una solicitud GET para recuperar el archivo.