Obtención de la salida del trabajo (GET output) - Amazon S3 Glacier

Esta página es solo para los clientes actuales del servicio S3 Glacier que utilizan Vaults y el original de 2012. REST API

Si busca soluciones de almacenamiento de archivos, le sugerimos que utilice las clases de almacenamiento S3 Glacier en Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive. Para obtener más información sobre estas opciones de almacenamiento, consulte Clases de almacenamiento de S3 Glacier y Almacenamiento de datos a largo plazo con clases de almacenamiento de S3 Glacier en la Guía del usuario de Amazon S3. Estas clases de almacenamiento utilizan Amazon S3API, están disponibles en todas las regiones y se pueden gestionar en la consola de Amazon S3. Ofrecen funciones como el análisis de costos de almacenamiento, Storage Lens, funciones avanzadas de cifrado opcionales y más.

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.

Obtención de la salida del trabajo (GET output)

Descripción

Esta operación descarga la salida del trabajo que ha iniciado con Iniciar trabajo (POSTtrabajos). En función del tipo de trabajo que haya especificado al iniciar el trabajo, la salida será el contenido de un archivo o un inventario de almacén.

Puede descargar toda la salida de trabajo o descargar una parte de la salida especificando un rango de bytes. En los trabajos de recuperación de inventario y archivo, debe verificar el tamaño descargado con el tamaño devuelto en los encabezados de la respuesta Get Job Output.

En el caso de los trabajos de recuperación de archivo, también debe verificar que el tamaño sea el previsto. Si descarga una parte de la salida, el tamaño esperado se basa en el rango de bytes especificado. Por ejemplo, si especifica un rango de bytes=0-1048575, debe verificar que el tamaño de descarga sea de 1.048.576 bytes. Si descarga un archivo completo, el tamaño previsto es el del archivo cuando lo cargó en Amazon S3 Glacier (S3 Glacier). El tamaño esperado también se devuelve en los encabezados de la respuesta Get Job Output (Obtener salida de trabajo).

En el caso de un trabajo de recuperación de archivo, según el rango de bytes que especifique, S3 Glacier devuelve la suma de comprobación correspondiente a la parte de los datos. Para asegurarse de que la parte que ha descargado es la correcta, calcule la suma de comprobación en el cliente, verifique que coinciden los valores y compruebe que el tamaño es el esperado.

El ID de trabajo se mantiene en vigor al menos 24 horas después de que S3 Glacier finalice el trabajo. Es decir, puede descargar la salida de trabajo durante el periodo de 24 horas después de que S3 Glacier finalice el trabajo.

Solicitudes

Sintaxis

Para recuperar una salida de trabajo, envíe la solicitud HTTP GET al URI de output del trabajo específico.

GET /AccountId/vaults/VaultName/jobs/JobID/output HTTP/1.1 Host: glacier.Region.amazonaws.com Date: Date Authorization: SignatureValue Range: ByteRangeToRetrieve 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
Range

El rango de bytes que se recuperará de la salida. Por ejemplo, si desea descargar los primeros 1.048.576 bytes, especifique el rango como bytes=0-1048575. Para obtener más información, consulte Definición de los campos de encabezado de rango. El rango es relativo a cualquier otro especificado en la solicitud de inicio de trabajo. De forma predeterminada, esta operación descarga toda la salida.

Si la salida del trabajo es grande, puede utilizar el encabezado de la solicitud Range para recuperar una parte de la salida. Esto le permite descargar toda la salida en fragmentos de bytes más pequeños. Por ejemplo, suponga que tiene 1 GB de salida de trabajo que desea descargar y decide descargar fragmentos de datos de 128 MB simultáneamente, un total de ocho solicitudes de obtener la salida de trabajo. Utilizará el siguiente proceso para descargar la salida de trabajo:

  1. Descargue un fragmento de salida de 128 MB especificando el rango de bytes adecuado mediante el encabezado Range. Verifique que se han recibido los 128 MB de datos.

  2. Junto con los datos, la respuesta incluirá una suma de comprobación de la carga. Puede calcular la suma de comprobación de la carga en el cliente y compararla con la suma de comprobación que recibió en la respuesta para asegurarse de haber recibido todos los datos previstos.

  3. Repita los pasos 1 y 2 para los ocho fragmentos de salida de datos de 128 MB, especificando cada vez el rango de bytes adecuados.

  4. Después de descargar todas las partes de la salida de trabajo, dispone de una lista de ocho valores de suma de comprobación. Calcule el hash en árbol de estos valores para encontrar la suma de comprobación de toda la salida. Con la operación Descripción del trabajo (GET JobID), obtenga la información del trabajo que ha proporcionado en la salida. La respuesta incluye la suma de comprobación de todo el archivo almacenado en S3 Glacier. Compare este valor con la suma de comprobación que ha calculado para garantizar que ha descargado todo el contenido del archivo sin errores.

Tipo: String

Valor predeterminado: None

Restricciones: ninguna

No

Cuerpo de la solicitud

Esta operación no tiene un cuerpo de la solicitud.

Respuestas

Sintaxis

En el caso de una solicitud de recuperación que devuelve todos los datos del trabajo, la respuesta de la salida del trabajo devuelve un código de respuesta 200 OK. Cuando se solicita el contenido parcial, por ejemplo, si ha especificado el encabezado Range en la solicitud, se devuelve el código de respuesta 206 Partial Content.

HTTP/1.1 200 OK x-amzn-RequestId: x-amzn-RequestId Date: Date Content-Type: ContentType Content-Length: Length x-amz-sha256-tree-hash: ChecksumComputedByAmazonGlacier [Body containing job output.]

Encabezados de respuesta

Encabezado Descripción
Content-Range

El rango de bytes que devuelve S3 Glacier. Si solo se ha descargado la salida parcial, la respuesta proporciona el rango de bytes que ha devuelto S3 Glacier.

Por ejemplo, bytes 0-1048575/8388608 devuelve el primer 1 MB de 8 MB.

Para obtener más información sobre el encabezado Content-Range, consulte Definición de campos del encabezado Content-Range (Contenido-Rango).

Tipo: String

Content-Type

Content-Type depende de si la salida del trabajo es un archivo o un inventario de almacén.

  • En el caso de datos de archivo, Content-Type es application/octet-stream.

  • En el caso de inventario de almacén, si ha solicitado el formato CSV al iniciar el trabajo, Content-Type es text/csv. De lo contrario, y de forma predeterminada, se devuelve el inventario de almacén como código JSON y Content-Type es application/json.

Tipo: String

x-amz-sha256-tree-hash

La suma de comprobación de los datos de la respuesta. Este encabezado solo se devuelve al recuperar la salida de un trabajo de recuperación de archivo. Además, este encabezado aparece cuando el rango de datos recuperados solicitados en la solicitud de inicio de trabajo está alineado con el hash en árbol y el rango para descarga en la solicitud de obtención de salida de trabajo también está alineado con el hash en árbol. Para obtener más información sobre los intervalos alineados con un algoritmo hasta en árbol, consulte Recuperación de sumas de comprobación al descargar datos.

Por ejemplo, si en su solicitud de inicio de trabajo ha especificado un rango alineado con el hash en árbol para recuperarlo (lo que incluye todo el archivo), recibirá la suma de comprobación de los datos que descargue con las condiciones siguientes:

  • Obtiene el rango completo de los datos recuperados.

  • Solicita un rango de bytes de los datos recuperados que tiene un tamaño de un megabyte (1024 KB) multiplicado por una potencia de 2 y que comienza y termina por un múltiplo del tamaño del rango solicitado. Por ejemplo, si tiene 3,1 MB de datos recuperados y especifica un rango para devolver que comienza en 1 MB y termina en 2 MB, se devuelve x-amz-sha256-tree-hash como encabezado de respuesta.

  • Solicita un rango para devolver de los datos recuperados que va hasta el final de los datos y el inicio del rango es un múltiplo del tamaño del rango para recuperar redondeado a la siguiente potencia de dos, pero no menor que un megabyte (1024 KB). Por ejemplo, si tiene 3,1 MB de datos recuperados y especifica un rango que comienza en 2 MB y termina en 3,1 MB (el final de los datos), se devuelve x-amz-sha256-tree-hash como encabezado de respuesta.

Tipo: String

Cuerpo de respuesta

S3 Glacier devuelve la salida del trabajo en el cuerpo de la respuesta. Según el tipo de trabajo, la salida puede ser el contenido del archivo o el inventario de almacén. En el caso de un inventario de almacén, de forma predeterminada, se devuelve la lista de inventarios como el siguiente cuerpo JSON.

{ "VaultARN": String, "InventoryDate": String, "ArchiveList": [ {"ArchiveId": String, "ArchiveDescription": String, "CreationDate": String, "Size": Number, "SHA256TreeHash": String }, ... ] }

Si ha solicitado el formato de salida de valores separados por comas (CSV) al iniciar el trabajo de inventario de almacén, el inventario de almacén se devuelve en formato CSV en el cuerpo. El formato CSV tiene cinco columnas ("ArchiveId", "ArchiveDescription", "CreationDate", "Size" y "SHA256TreeHash") con las mismas definiciones que los campos JSON correspondientes.

nota

En el formato CSV devuelto, los campos se pueden devolver con el campo completo entre comillas. Los campos que contienen una coma o comillas siempre se devuelven entre comillas. Por ejemplo, my archive description,1 se devuelve como "my archive description,1". Los caracteres de comillas que están en los campos devueltos entre comillas se escapan anteponiéndoles un carácter de barra oblicua inversa. Por ejemplo, my archive description,1"2 se devuelve como "my archive description,1\"2" y my archive description,1\"2 se devuelve como "my archive description,1\\"2". El carácter de barra oblicua inversa no está escapado.

El cuerpo de la respuesta JSON contiene los siguientes campos JSON.

ArchiveDescription

La descripción de un archivo.

Tipo: cadena

ArchiveId

El ID de un archivo.

Tipo: cadena

ArchiveList

Una matriz de metadatos de archivo. Cada objeto de la matriz representa los metadatos de un archivo incluido en el almacén.

Tipo: Array

CreationDate

La fecha y hora UTC en que se creó el archivo.

Tipo: una representación de cadena con el formato de fecha ISO 8601; por ejemplo, 2013-03-20T17:03:43.221Z.

InventoryDate

La fecha y la hora UTC del último inventario del almacén que se completó después de los cambios en el almacén. Aunque S3 Glacier prepara un inventario de almacén una vez al día, la fecha de inventario solo se actualiza si ha habido adiciones o eliminaciones de archivo en el almacén desde el último inventario.

Tipo: una representación de cadena con el formato de fecha ISO 8601; por ejemplo, 2013-03-20T17:03:43.221Z.

SHA256TreeHash

El hash en árbol del archivo.

Tipo: cadena

Size (Tamaño)

El tamaño en bytes del archivo.

Tipo: Número

VaultARN

El recurso del nombre de recurso de Amazon (ARN) para el que se solicitó la recuperación del archivo.

Tipo: cadena

Errores

Para obtener información acerca de los mensajes de error y las excepciones de Amazon S3 Glacier, consulte Respuestas de error.

Ejemplos

En el ejemplo siguiente, se muestra una solicitud de un trabajo que recupera un archivo.

Ejemplo 1: Descargar la salida

Este ejemplo recupera los datos preparados por S3 Glacier en respuesta a su solicitud de inicio del trabajo de recuperación de archivo.

Solicitud de ejemplo

GET /-/vaults/examplevault/jobs/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID/output HTTP/1.1 Host: glacier.us-west-2.amazonaws.com x-amz-Date: 20170210T120000Z 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

A continuación, se muestra una respuesta de ejemplo de un trabajo de recuperación de archivo. Tenga en cuenta que el encabezado Content-Type es application/octet-stream y que el encabezado x-amz-sha256-tree-hash se incluye en la respuesta, lo que significa que se devuelven todos los datos de trabajo.

HTTP/1.1 200 OK x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q x-amz-sha256-tree-hash: beb0fe31a1c7ca8c6c04d574ea906e3f97b31fdca7571defb5b44dca89b5af60 Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Type: application/octet-stream Content-Length: 1048576 [Archive data.]

A continuación, se muestra una respuesta de ejemplo de un trabajo de recuperación de inventario. Observe que el encabezado Content-Type es application/json. Además, tenga en cuenta que la respuesta no incluye el encabezado x-amz-sha256-tree-hash.

HTTP/1.1 200 OK x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Type: application/json Content-Length: 906 { "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/examplevault", "InventoryDate": "2011-12-12T14:19:01Z", "ArchiveList": [ { "ArchiveId": "DMTmICA2n5Tdqq5BV2z7og-A20xnpAPKt3UXwWxdWsn_D6auTUrW6kwy5Qyj9xd1MCE1mBYvMQ63LWaT8yTMzMaCxB_9VBWrW4Jw4zsvg5kehAPDVKcppUD1X7b24JukOr4mMAq-oA", "ArchiveDescription": "my archive1", "CreationDate": "2012-05-15T17:19:46.700Z", "Size": 2140123, "SHA256TreeHash": "6b9d4cf8697bd3af6aa1b590a0b27b337da5b18988dbcc619a3e608a554a1e62" }, { "ArchiveId": "2lHzwhKhgF2JHyvCS-ZRuF08IQLuyB4265Hs3AXj9MoAIhz7tbXAvcFeHusgU_hViO1WeCBe0N5lsYYHRyZ7rrmRkNRuYrXUs_sjl2K8ume_7mKO_0i7C-uHE1oHqaW9d37pabXrSA", "ArchiveDescription": "my archive2", "CreationDate": "2012-05-15T17:21:39.339Z", "Size": 2140123, "SHA256TreeHash": "7f2fe580edb35154041fa3d4b41dd6d3adaef0c85d2ff6309f1d4b520eeecda3" } ] }

Ejemplo 2: Descargar solo la salida parcial

Este ejemplo recupera solo una parte del archivo preparado por S3 Glacier en respuesta a su solicitud de inicio del trabajo de recuperación de archivo. La solicitud utiliza el encabezado Range opcional para recuperar solo los primeros 1024 bytes.

Solicitud de ejemplo

GET /-/vaults/examplevault/jobs/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID/output HTTP/1.1 Host: glacier.us-west-2.amazonaws.com x-amz-Date: 20170210T120000Z Range: bytes=0-1023 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

La siguiente respuesta correcta muestra la respuesta 206 Partial Content. En este caso, la respuesta también incluye un encabezado Content-Range que especifica el rango de bytes que devuelve S3 Glacier.

HTTP/1.1 206 Partial Content x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Range: bytes 0-1023/8388608 Content-Type: application/octet-stream Content-Length: 1024 [Archive data.]