View a markdown version of this page

GetObject (API de SOAP) - Amazon Simple Storage Service

GetObject (API de SOAP)

nota

Las API de SOAP para Amazon S3 no están disponibles para nuevos clientes y se acercan al fin de la vida útil (EOL) el 31 de agosto de 2025. Le recomendamos que utilice la API de REST o los SDK de AWS.

La operación GetObject devuelve la versión actual de un objeto. Si intenta GetObject un objeto que tiene un marcador de eliminación como versión actual, S3 devuelve un error 404. No puede usar la API de SOAP para recuperar una versión específica de un objeto. Para ello, utilice la API de REST. Para obtener más información, consulte Control de versiones. Para obtener más opciones, utilice la operación GetObjectExtended (API de SOAP).

nota

Los nombres de clave de objeto con el valor "soap" no son compatibles con las solicitudes de tipo host virtual. Para los valores de los nombres de las claves de los objetos en los que se utiliza "soap", se debe utilizar en su lugar una URL de tipo ruta.

ejemplo

En este ejemplo, se obtiene el objeto “Nelson” del bucket “quotes”.

Sample Request

<GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>quotes</Bucket> <Key>Nelson</Key> <GetMetadata>true</GetMetadata> <GetData>true</GetData> <InlineData>true</InlineData> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </GetObject>

Sample Response

<GetObjectResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01"> <GetObjectResponse> <Status> <Code>200</Code> <Description>OK</Description> </Status> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>Muntz</Value> </Metadata> <Data>aGEtaGE=</Data> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>&quot;828ef3fdfa96f00ad9f27c383fc9ac7f&quot;</ETag> </GetObjectResponse> </GetObjectResponse>

Elementos

  • Bucket: el bucket del que se va a recuperar el objeto.

  • Key: la clave que identifica el objeto.

  • GetMetadata: los metadatos se devuelven con el objeto si es verdadero.

  • GetData: los datos del objeto se devuelven si es verdadero.

  • InlineData: si es verdadero, los datos se devuelven, codificados en base 64, como parte del cuerpo de SOAP de la respuesta. Si es falso, los datos se devuelven como un archivo adjunto de SOAP. La opción InlineData no es adecuada para su uso con objetos grandes. El sistema limita esta operación al trabajo con 1 MB de datos o menos. Una solicitud de GetObject con el indicador InlineData establecido producirá un error con el código de estado InlineDataTooLargeError si el parámetro Datos resultante hubiera codificado más de 1 MB. Para descargar objetos grandes, considere llamar a GetObject sin establecer el indicador InlineData o, en su lugar, use la API de REST.

Elementos devueltos

  • Metadata: los metadatos de pares nombre-valor almacenados con el objeto.

  • Data: si InlineData era verdadero en la solicitud, contiene los datos del objeto codificados en base 64.

  • LastModified: la hora en la que se almacenó el objeto en Amazon S3.

  • ETag: la etiqueta de entidad del objeto. Este es un hash del objeto que se puede usar para realizar obtenciones condicionales. La ETag solo refleja los cambios en el contenido de un objeto, no en los metadatos.

Control de acceso

Puede leer un objeto solo si se le ha concedido acceso de READ al objeto.

Descargas fragmentadas y reanudables de SOAP

Para ofrecer flexibilidad GET, Amazon S3 admite descargas fragmentadas y reanudables.

Seleccione entre lo siguiente:

  • Para descargas de objetos grandes, es posible que desee dividirlas en fragmentos más pequeños. Para obtener más información, consulte Range GET

  • Para operaciones GET que produzcan un error, puede diseñar la aplicación para que descargue el resto del archivo en lugar de todo el archivo. Para obtener más información, consulte Recuperación del error GET de REST

Range GET

En el caso de algunos clientes, es posible que desee dividir las descargas grandes en descargas más pequeñas. Para dividir GET en unidades más pequeñas, use Range.

Antes de poder dividir GET en unidades más pequeñas, debe determinar su tamaño. Por ejemplo, la siguiente solicitud obtiene el tamaño del objeto bigfile.

<ListBucket xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>bigbucket</Bucket> <Prefix>bigfile</Prefix> <MaxKeys>1</MaxKeys> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </ListBucket>

Amazon S3 devuelve la respuesta siguiente.

<ListBucketResult xmlns="https://s3.amazonaws.com/doc/2006-03-01"> <Name>quotes</Name> <Prefix>N</Prefix> <MaxKeys>1</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>bigfile</Key> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>&quot;828ef3fdfa96f00ad9f27c383fc9ac7f&quot;</ETag> <Size>2023276</Size> <StorageClass>STANDARD</StorageClass> <Owner> <ID>bcaf1ffd86f41161ca5fb16fd081034f</ID> <DisplayName>bigfile</DisplayName> </Owner> </Contents> </ListBucketResult>

A continuación, se muestra una solicitud que descarga el primer megabyte del objeto bigfile.

<GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>bigbucket</Bucket> <Key>bigfile</Key> <GetMetadata>true</GetMetadata> <GetData>true</GetData> <InlineData>true</InlineData> <ByteRangeStart>0</ByteRangeStart> <ByteRangeEnd>1048576</ByteRangeEnd> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </GetObject>

Amazon S3 devuelve el primer megabyte del archivo y la Etag del archivo.

<GetObjectResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01"> <GetObjectResponse> <Status> <Code>200</Code> <Description>OK</Description> </Status> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>Muntz</Value> </Metadata> <Data>--first megabyte of bigfile--</Data> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> </GetObjectResponse> </GetObjectResponse>

Para asegurarse de que el archivo no ha cambiado desde que se descargó la parte anterior, especifique el elemento IfMatch. Aunque el elemento IfMatch no es obligatorio, se recomienda para el contenido que pueda cambiar.

A continuación, se muestra una solicitud que obtiene el resto del archivo mediante el encabezado de solicitud IfMatch.

<GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>bigbucket</Bucket> <Key>bigfile</Key> <GetMetadata>true</GetMetadata> <GetData>true</GetData> <InlineData>true</InlineData> <ByteRangeStart>10485761</ByteRangeStart> <ByteRangeEnd>2023276</ByteRangeEnd> <IfMatch>"828ef3fdfa96f00ad9f27c383fc9ac7f"</IfMatch> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </GetObject>

Amazon S3 devuelve la siguiente respuesta y el resto del archivo.

<GetObjectResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01"> <GetObjectResponse> <Status> <Code>200</Code> <Description>OK</Description> </Status> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>>Muntz</Value> </Metadata> <Data>--remainder of bigfile--</Data> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> </GetObjectResponse> </GetObjectResponse>

GetObject versionado

La siguiente solicitud devuelve la versión especificada del objeto del bucket.

<GetObject xmlns="https://doc.s3.amazonaws.com/2006-03-01"> <Bucket>quotes</Bucket> <Key>Nelson</Key> <GetMetadata>true</GetMetadata> <GetData>true</GetData> <InlineData>true</InlineData> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </GetObject>

Respuesta de ejemplo

<GetObjectResponse xmlns="https://s3.amazonaws.com/doc/2006-03-01"> <GetObjectResponse> <Status> <Code>200</Code> <Description>OK</Description> </Status> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>family</Name> <Value>Muntz</Value> </Metadata> <Data>aGEtaGE=</Data> <LastModified>2006-01-01T12:00:00.000Z</LastModified> <ETag>&quot;828ef3fdfa96f00ad9f27c383fc9ac7f&quot;</ETag> </GetObjectResponse> </GetObjectResponse>

Recuperación del error GET de REST

Si un objeto GET produce un error, puede obtener el resto del archivo especificando el rango que desea descargar. Para ello, debe obtener el tamaño del objeto mediante ListBucket y realizar un rango GET en el resto del archivo. Para obtener más información, consulte GetObjectExtended (API de SOAP).

Activos relacionados

Operaciones en objetos (API de SOAP)