La operación GetObject recupera un objeto de un bucket. Para llamar a esta operación, debe contar con permisos de lectura sobre el objeto.
Sintaxis de la solicitud
GET /ObjectName HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Range: bytes=ByteRange (Optional)
Para obtener información sobre cómo calcular la firma del encabezado Authorization, consulte Authorization request header.
Al descargar objetos grandes (de más de 100 MB) desde OSS, la transferencia puede fallar debido a problemas de red. Utilice solicitudes HTTP Range para recuperar un objeto grande por partes. Este método permite descargas reanudables y concurrentes, lo que mejora la confiabilidad de la transferencia. Para obtener más información, consulte How to obtain OSS resources in segments using HTTP Range requests.
Notas de uso
De forma predeterminada, la operación GetObject admite el acceso mediante HTTP y HTTPS. También es compatible con descargas de múltiples rangos. Especifique varios intervalos de bytes en una sola solicitud para mejorar la eficiencia de la descarga.
Para permitir el acceso únicamente mediante HTTPS, utilice una bucket policy.
Si el objeto pertenece a la clase de almacenamiento Archive, primero debe enviar una solicitud RestoreObject o habilitar el acceso en tiempo real a los objetos Archive en el bucket donde se almacena el objeto.
Permisos
Control de versiones
Comportamiento de la API
Facturación y limitación de velocidad
Parámetros de la solicitud
Encabezados de la solicitud
OSS admite encabezados de respuesta personalizados en las solicitudes GET. Los valores de estos encabezados se establecen según lo indicado en la solicitud GET únicamente si esta se completa correctamente y el código de retorno es 200 OK.
OSS no admite encabezados de respuesta personalizados en las solicitudes GET con acceso anónimo.
|
Nombre |
Tipo |
Obligatorio |
Descripción |
|
Range |
String |
No |
Intervalo del objeto que se va a transferir.
Valor predeterminado: Ninguna |
|
x-oss-multi-range-behavior |
String |
No |
Habilita la función de descarga de múltiples rangos.
Valor predeterminado: Ninguna |
|
If-Modified-Since |
String |
No |
Si la hora especificada es anterior a la hora de modificación real del objeto, o bien no es válida, el objeto se devuelve con el estado 200 OK. Si la hora especificada es igual o posterior a la hora de modificación real, se devuelve 304 Not Modified. Formato: GMT. Ejemplo: Valor predeterminado: Ninguna |
|
If-Unmodified-Since |
String |
No |
Si la hora especificada es igual o posterior a la hora de modificación real del objeto, este se transfiere y se devuelve 200 OK. Si la hora especificada es anterior a la hora de modificación real, se devuelve 412 Precondition Failed. Formato: GMT. Ejemplo: Utilice If-Modified-Since y If-Unmodified-Since de manera simultánea. Valor predeterminado: Ninguna |
|
If-Match |
String |
No |
Si el ETag proporcionado coincide con el ETag del objeto, este se transfiere y se devuelve 200 OK. Si el ETag proporcionado no coincide con el ETag del objeto, se devuelve 412 Precondition Failed. El ETag de un objeto sirve para comprobar si los datos han cambiado. Utilice el valor de ETag para verificar la integridad de los datos. Valor predeterminado: Ninguna |
|
If-None-Match |
String |
No |
Si el ETag proporcionado no coincide con el ETag del objeto, este se transfiere y se devuelve 200 OK. Si el ETag proporcionado coincide con el ETag del objeto, se devuelve 304 Not Modified. Utilice If-Match y If-None-Match de manera simultánea. Valor predeterminado: Ninguna |
|
Accept-Encoding |
String |
No |
Tipo de codificación del cliente. Para transferir el contenido devuelto en formato comprimido Gzip, agregue de forma explícita Accept-Encoding:gzip al encabezado de la solicitud. OSS determina si comprime los datos con Gzip durante la transferencia según el Content-Type y el tamaño del objeto (como mínimo 1 KB). Si se cumplen estas condiciones, los datos se transfieren en formato comprimido; de lo contrario, se transfieren en su formato original.
Valor predeterminado: Ninguna |
Parámetros de consulta
|
Nombre |
Tipo |
Obligatorio |
Descripción |
|
response-content-language |
String |
No |
Especifica el encabezado content-language que OSS devuelve para la solicitud. Valor predeterminado: Ninguna |
|
response-expires |
String |
No |
Especifica el encabezado expires que OSS devuelve para la solicitud. Valor predeterminado: Ninguna |
|
response-cache-control |
String |
No |
Especifica el encabezado cache-control que OSS devuelve para la solicitud. Valor predeterminado: Ninguna |
|
response-content-disposition |
String |
No |
Especifica el encabezado content-disposition que OSS devuelve para la solicitud. Valor predeterminado: Ninguna |
|
response-content-encoding |
String |
No |
Especifica el encabezado content-encoding que OSS devuelve para la solicitud. Valor predeterminado: Ninguna |
Parámetros de la respuesta
Encabezados de la respuesta
Si el objeto es un enlace simbólico, se devuelve el contenido del objeto de destino. En los encabezados de respuesta, Content-Length, ETag y Content-Md5 corresponden a los metadatos del objeto de destino. Last-Modified refleja la hora de modificación más reciente entre el objeto de destino y el enlace simbólico. Los demás encabezados contienen los metadatos del enlace simbólico.
|
Nombre |
Tipo |
Descripción |
|
x-oss-server-side-encryption |
String |
Si el objeto se almacenó con cifrado del lado del servidor, se descifra automáticamente y se devuelve al enviar una solicitud GET. El encabezado x-oss-server-side-encryption se incluye en la respuesta para indicar el algoritmo de cifrado del lado del servidor utilizado en el objeto. |
|
x-oss-sealed-time |
String |
Si el objeto es de tipo appendable y se le aplicó la operación Seal, se devuelve este encabezado para indicar la hora en que se ejecutó dicha operación en el archivo. El valor tiene un formato similar a |
|
x-oss-tagging-count |
String |
Número de etiquetas asociadas al objeto. Este encabezado se devuelve únicamente si cuenta con permisos para leer etiquetas. |
|
x-oss-expiration |
String |
Fecha de caducidad de un objeto en un bucket con una regla de ciclo de vida configurada.
|
Ejemplos
Descarga básica
-
Solicitud de ejemplo
GET /oss.jpg HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Fri, 24 Feb 2012 06:38:30 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Respuesta de ejemplo (cuando el objeto es un archivo)
HTTP/1.1 200 OK x-oss-request-id: 3a8f-2e2d-7965-3ff9-51c875b***** x-oss-object-type: Normal Date: Fri, 24 Feb 2012 06:38:30 GMT Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT ETag: "5B3C1A2E0563E1B002CC607C*****" Content-Type: image/jpg Content-Length: 344606 Server: AliyunOSS [344606 bytes of object data] -
Respuesta de ejemplo (cuando el objeto es un directorio)
Cuando el objeto es un directorio, se ignoran los encabezados de respuesta personalizados de la solicitud, como Range.
HTTP/1.1 200 OK x-oss-request-id: 3a8f-2e2d-7965-3ff9-51c875b***** x-oss-object-type: Normal Date: Wed, 31 Mar 2021 06:38:30 GMT Last-Modified: Tue, 30 Mar 2021 06:07:48 GMT ETag: "null" Content-Type: application/x-directory Content-Length: 0 Server: AliyunOSS
Descarga por rangos
-
Solicitud de ejemplo
GET /oss.jpg HTTP/1.1 Host:oss-example.oss-cn-hangzhou.aliyuncs.com Date: Fri, 28 Feb 2012 05:38:42 GMT Range: bytes=100-900 Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Respuestas de ejemplo
HTTP/1.1 206 Partial Content x-oss-request-id: 28f6-15ea-8224-234e-c0ce407***** x-oss-object-type: Normal Date: Fri, 28 Feb 2012 05:38:42 GMT Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT ETag: "5B3C1A2E05E1B002CC607C*****" Accept-Ranges: bytes Content-Range: bytes 100-900/344606 Content-Type: image/jpg Content-Length: 801 Server: AliyunOSS [801 bytes of object data]
Descarga de múltiples rangos
-
Solicitud de ejemplo
GET /oss.jpg HTTP/1.1 Host:oss-example.oss-cn-hangzhou.aliyuncs.com Date: Fri, 28 Feb 2012 05:38:42 GMT Range: bytes=0-1,3-4,5-6,7-8 x-oss-multi-range-behavior: multi-range Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Respuesta de ejemplo
HTTP/1.1 206 Partial Content x-oss-request-id: 28f6-15ea-8224-234e-c0ce407***** x-oss-object-type: Normal Date: Fri, 28 Feb 2012 05:38:42 GMT Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT ETag: "5B3C1A2E05E1B002CC607C*****" Accept-Ranges: bytes Content-Type: multipart/byteranges;boundary=63ce7776-c104-417f-8a65-ccaa3b17f428 Content-Length: 446 Server: AliyunOSS --63ce7776-c104-417f-8a65-ccaa3b17f428 Content-type: text/plain Content-range: bytes 0-1/10 [ 2 Bytes object content] --63ce7776-c104-417f-8a65-ccaa3b17f428 Content-type: text/plain Content-range: bytes 3-4/10 [ 2 Bytes object content] --63ce7776-c104-417f-8a65-ccaa3b17f428 Content-type: text/plain Content-range: bytes 5-6/10 [ 2 Bytes object content] --63ce7776-c104-417f-8a65-ccaa3b17f428 Content-type: text/plain Content-range: bytes 7-8/10 [ 2 Bytes object content] --63ce7776-c104-417f-8a65-ccaa3b17f428--
Encabezados de respuesta personalizados
-
Solicitud de ejemplo
GET /oss.jpg?response-expires=Thu%2C%2001%20Feb%202012%2017%3A00%3A00%20GMT&response-cache-control=No-cache&response-content-disposition=attachment%253B%2520filename%253Dtesting.txt&response-content-encoding=utf-8&response-content-language=%E4%B8%AD%E6%96%87 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com: Date: Fri, 24 Feb 2012 06:09:48 GMT -
Respuesta de ejemplo
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC75A644***** x-oss-object-type: Normal Date: Fri, 24 Feb 2012 06:09:48 GMT Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT ETag: "5B3C1A2E053D1B002CC607*****" Content-Length: 344606 Connection: keep-alive Content-disposition: attachment; filename=testing.txt Content-language: Chinese Content-type: jpg Cache-control: no-cache Expires: Fri, 24 Feb 2012 17:00:00 GMT Server: AliyunOSS [344606 bytes of object data]
Objeto de enlace simbólico
-
Solicitud de ejemplo
GET /link-to-oss.jpg HTTP/1.1 Accept-Encoding: identity Date: Tue, 08 Nov 2016 03:17:58 GMT Host: oss-example.oss-cn-hangzhou.aliyuncs.com Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Respuesta de ejemplo
HTTP/1.1 200 OK Server: AliyunOSS Date: Tue, 08 Nov 2016 03:17:58 GMT Content-Type: application/octet-stream Content-Length: 20 Connection: keep-alive x-oss-request-id: 582143E6A212AD***** Accept-Ranges: bytes ETag: "8086265EFC021F9A2F09BF4****" Last-Modified: Tue, 08 Nov 2016 03:17:58 GMT x-oss-object-type: Symlink Content-MD5: gIYmXvwCEe0fmi8Jv0Y****
Objeto Archive (restaurado)
-
Solicitud de ejemplo
GET /oss.jpg HTTP/1.1 Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.com Date: Sat, 15 Apr 2017 09:38:30 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Respuesta de ejemplo
HTTP/1.1 200 OK x-oss-request-id: 58F723829F29F18D7F00***** x-oss-object-type: Normal x-oss-restore: ongoing-request="false", expiry-date="Sun, 16 Apr 2017 08:12:33 GMT" Date: Sat, 15 Apr 2017 09:38:30 GMT Last-Modified: Sat, 15 Apr 2017 06:07:48 GMT ETag: "5B3C1A2E0763E1B002CC607C*****" Content-Type: image/jpg Content-Length: 344606 Server: AliyunOSS [344606 bytes of object data]
Escenarios de control de versiones
-
Especificar un identificador de versión
-
Solicitud de ejemplo
GET /example?versionId=CAEQNhiBgMDJgZCA0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY0**** HTTP/1.1 Host: versioning-get.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 02:58:06 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Respuesta de ejemplo
HTTP/1.1 200 OK x-oss-request-id: 5CAC0A3EDE0170***** x-oss-version-id: CAEQNhiBgM0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY***** x-oss-object-type: Normal Date: Tue, 17 Apr 2025 02:58:06 GMT Last-Modified: Fri, 22 Mar 2018 08:07:50 GMT ETag: "5B3C1A2E053D7002CC607C5A*****" Content-Type: text/html Content-Length: 362149 Server: AliyunOSS [362149 bytes of object data]
-
-
La versión actual es un marcador de eliminación
-
Solicitud de ejemplo
GET /example HTTP/1.1 Host: versioning-get.oss-cn-hangzhou.aliyuncs.com Date: Tue, 17 Apr 2025 03:22:33 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Respuesta de ejemplo
HTTP/1.1 404 Not Found x-oss-request-id: 5CAC0FEADE0170***** x-oss-delete-marker: true x-oss-version-id: CAEQNxiBgyA0BYiIDc4ZDdmNTA2MGViZTRiNjE5NzZlZWM4OWM5OT***** Date: Tue, 17 Apr 2025 03:22:33 GMT Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>NoSuchKey</Code> <Message>The specified key does not exist.</Message> <RequestId>5CAC0FEADE0170*****</RequestId> <HostId>versioning-get.oss-cn-hangzhou.aliyun*****</HostId> <Key>example</Key> </Error>
-
-
Especificar el identificador de versión de un marcador de eliminación
-
Solicitud de ejemplo
GET /example?versionId=CAEQMxiBgMCfqaWA0BYiIDliMWI4MGQ0MTVmMjQ3MmE5MDNlMmY4YmFkYTk3**** HTTP/1.1 Host: versioning-get.oss-cn-hangzhou.aliyuncs.com Date: Tue, 17 Apr 2025 03:09:44 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e -
Respuesta de ejemplo
HTTP/1.1 405 Method Not Allowed x-oss-request-id: 5CAC0CF8DE01700***** x-oss-delete-marker: true x-oss-version-id: CAEQMxiBgMCfqaWADliMWI4MGQ0MTVmMjQ3MmE5MDNlMmY4YmFkYTk***** Allow: DELETE Date: Tue, 17 Apr 2025 03:09:44 GMT Content-Type: application/xml Content-Length: 318 Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>MethodNotAllowed</Code> <Message>The specified method is not allowed against this resource.</Message> <RequestId>5CAC0CF8DE0170*****</RequestId> <HostId>versioning-get.oss-cn-hangzhou.aliyunc*****</HostId> <Method>GET</Method> <ResourceType>DeleteMarker</ResourceType> </Error>
-
Códigos de error
Si una solicitud falla, OSS devuelve un cuerpo de respuesta que contiene un código de error. A continuación se muestran los códigos de error de esta operación.
|
Código de error |
Código de estado HTTP |
Descripción |
|
NoSuchKey |
404 |
El objeto de destino no existe. |
|
SymlinkTargetNotExist |
404 |
El objeto es un enlace simbólico y el objeto de destino no existe. |
|
InvalidTargetType |
400 |
El objeto es un enlace simbólico y el objeto de destino también lo es. |
|
InvalidObjectState |
403 |
Este error ocurre al descargar un objeto de la clase de almacenamiento Archive:
|
|
Not Modified |
304 |
Este error se devuelve por los siguientes motivos:
|
|
Precondition Failed |
412 |
Este error se devuelve por los siguientes motivos:
|
|
Not Found |
404 |
Este error se devuelve si no se especifica el versionId del objeto en la solicitud y la versión actual del objeto es un marcador de eliminación. |
|
Method Not Allowed |
405 |
Este error se devuelve si se especifica el versionId del objeto en la solicitud y dicho versionId corresponde a un marcador de eliminación. |
Métodos de integración
-
SDK
A continuación se muestran los kits de desarrollo de software (SDK) para distintos lenguajes con los que puede llamar a la operación GetObject.
-
Interfaz de línea de comandos de ossutil
Para obtener información sobre el comando de ossutil correspondiente a la operación GetObject, consulte get-object.