Descarga de objetos
Funciones
Esta operación descarga objetos desde OBS. Antes de utilizar esta operación GET, compruebe que tiene el permiso de lectura para el objeto de destino. Si el propietario del objeto ha concedido a usuarios anónimos el permiso de lectura para el objeto, los usuarios anónimos pueden tener acceso a este objeto sin utilizar el campo de encabezado de autenticación.
Encriptación del lado del servidor
Si el objeto cargado en el servidor se cifra en el servidor utilizando la clave de encriptación proporcionada por el cliente, la descarga del objeto requiere incluir la clave de encriptación en el mensaje.
Control de versiones
De forma predeterminada, la operación GET devuelve la versión actual de un objeto. Si la versión actual del objeto es un marcador de eliminación, OBS devuelve un código que significa que no existe el objeto. Para obtener un objeto de una versión especificada, el parámetro versionId se puede utilizar para especificar la versión deseada.
Objetos de Archive de OBS
Si el objeto que se va a descargar es un objeto Archive, restáurelo antes de descargarlo. La respuesta varía con el estado de recuperación del objeto. Si el objeto se ha restaurado, se devuelve el encabezado x-obs-restore indicando la fecha de caducidad del objeto cuando se descarga correctamente. Si solicita la descarga de objetos Archive que no están restaurados o que están siendo restaurados, se devuelve un error 403 Forbidden.
Sintaxis de solicitud
1 2 3 4 5 6 |
GET /ObjectName HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Date: date Authorization: authorization Range:bytes=byte_range <Optional Additional Header> |
![](https://support.huaweicloud.com/intl/es-us/api-obs/public_sys-resources/note_3.0-es-us.png)
El campo es opcional. Si no existe, puede obtener todo el contenido.
Parámetros de solicitud
En una solicitud GET, puede anular los valores de un conjunto de encabezados de mensaje utilizando los parámetros de solicitud. Los encabezados de mensaje que puede reemplazar son Content-Type, Content-Language, Expires, Cache-Control, Content-Disposition, y Content-Encoding. Si el objeto de destino tiene varias versiones, utilice el parámetro versionId para especificar la versión que se va a descargar. Para más detalles, consulte Tabla 1.
![](https://support.huaweicloud.com/intl/es-us/api-obs/public_sys-resources/note_3.0-es-us.png)
OBS no procesa la Accept-Encoding incluida en una solicitud ni comprime o descomprime los datos cargados. El cliente determina si debe comprimir o descomprimir los datos. Algunos clientes HTTP pueden descomprimir datos basados en la codificación de contenido devuelto por el servidor. El programa cliente necesita determinar si descomprimir y cómo descomprimir los datos. Para descomprimir los datos, puede modificar Content-Encoding (los metadatos del objeto almacenados en OBS) o reescribir Content-Encoding que se descarga el objeto. Si una solicitud de descarga de objeto especifica el encabezado de reescritura, el encabezado de mensaje HTTP estándar devuelto por OBS está sujeto al contenido de reescritura especificado en la solicitud.
Parámetro |
Descripción |
Obligatorio |
---|---|---|
response-content-type |
Reescribe el encabezado Content-Type en la respuesta. Tipo: string |
No |
response-content-language |
Reescribe el encabezado Content-Language en la respuesta. Tipo: string |
No |
response-expires |
Reescribe el encabezado Expires en la respuesta. Tipo: string |
No |
response-cache-control |
Reescribe el encabezado Cache-Control en la respuesta. Tipo: string |
No |
response-content-disposition |
Reescribe el encabezado Content-Disposition en la respuesta. Tipo: string Ejemplo: response-content-disposition=attachment; filename*=utf-8''name1 En este ejemplo, el objeto descargado pasa a llamarse name1. Si el nuevo nombre contiene caracteres chinos, debe estar codificado por URL. |
No |
response-content-encoding |
Reescribe el encabezado Content-Encoding en la respuesta. Tipo: string |
No |
versionId |
Indica el ID de versión del objeto cuyo contenido se obtiene. Tipo: string |
No |
x-image-process |
Servicio de procesamiento de imágenes. Un ejemplo es el siguiente: Comando: x-image-process=image/commands Estilo: x-image-process=style/stylename Para obtener más información, consulte la Guía de funciones de Image Processing. |
No |
attname |
Reescribe el encabezado Content-Disposition en la respuesta. Tipo: string Ejemplo: attname=name1 Cambie el nombre del objeto descargado como name1. |
No |
Encabezados de solicitud
Esta solicitud utiliza encabezados comunes. Además, puede agregar encabezados adicionales a esta solicitud. Tabla 2 describe los encabezados adicionales.
Encabezado |
Descripción |
Obligatorio |
---|---|---|
Range |
Obtiene el contenido del objeto dentro del ámbito definido por Range. Si el valor del parámetro no es válido, se obtiene todo el objeto. El valor Range comienza desde 0, y el valor máximo es igual a la longitud del objeto menos 1. El valor inicial de Range es obligatorio. Si sólo se especifica el valor inicial, el sistema obtiene el contenido del objeto desde el valor inicial hasta el valor máximo predeterminado. Después de que se lleva el campo de encabezado Range, el valor de ETag en el mensaje de respuesta es la ETag del objeto en lugar de la ETag del objeto en el campo Range. Tipo: string bytes=byte_range Ejemplo 1: bytes=0-4 Ejemplo 2: bytes=1024 Ejemplo 3: bytes=10-20, 30-40 (rangos múltiples) |
No |
If-Modified-Since |
Devuelve el objeto solo si ha sido modificado desde el tiempo especificado por este encabezado. De lo contrario, se devuelve 304 Not Modified. Tipo: string de caracteres de tiempo HTTP que cumple con el formato especificado en http://www.ietf.org/rfc/rfc2616.txt |
No |
If-Unmodified-Since |
Devuelve el objeto solo si no ha sido modificado desde el tiempo especificado por este encabezado. De lo contrario, se devuelve 412 Precondition Failed. Tipo: string de caracteres de tiempo HTTP que cumple con el formato especificado en http://www.ietf.org/rfc/rfc2616.txt |
No |
If-Match |
Devuelve el objeto solo si su ETag es la misma que la especificada por este encabezado. De lo contrario, se devuelve 412 Precondition Failed. Tipo: string (Ejemplo: 0f64741bf7cb1089e988e4585d0d3434) |
No |
If-None-Match |
Devuelve el objeto solo si su ETag es diferente de la especificada por este encabezado. De lo contrario, se devuelve 304 Not Modified. Tipo: string (Ejemplo: 0f64741bf7cb1089e988e4585d0d3434) |
No |
x-obs-server-side-encryption-customer-algorithm |
Indica un algoritmo de encriptación. La cabecera se utiliza en modo SSE-C. Tipo: string Ejemplo: x-obs-server-side-encryption-customer-algorithm:AES256 Restricciones: Este encabezado debe usarse junto con x-obs-server-side-encryption-customer-key y x-obs-server-side-encryption-customer-key-MD5. |
Si selecciona No, este encabezado es necesario cuando se utiliza SSE-C. |
x-obs-server-side-encryption-customer-key |
Indica una clave utilizada para cifrar objetos. La cabecera se utiliza en modo SSE-C. Esta clave se utiliza para descifrar objetos. Tipo: string Ejemplo: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hcs27fsNkUnNVaobncnLht/rCB2o/9Cw= Restricciones: Este encabezado es una clave de 256 bits codificada en base64 y debe usarse junto con x-obs-server-side-encryption-customer-algorithm y x-obs-server-side-encryption-customer-key-MD5. |
Si cualquier proceso es anormal: Este encabezado es necesario cuando se utiliza SSE-C. |
x-obs-server-side-encryption-customer-key-MD5 |
Indica el valor MD5 de una clave utilizada para cifrar objetos. La cabecera se utiliza en modo SSE-C. El valor MD5 se utiliza para comprobar si se produce algún error durante la transmisión de la clave. Tipo: string Ejemplo: x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ== Restricciones: Este encabezado es una string codificada en Base64 de 128 bits y debe usarse junto con x-obs-server-side-encryption-customer-algorithm y x-obs-server-side-encryption-customer-key. |
No. Esta cabecera es necesaria cuando se usa SSE-C. |
Elementos de solicitud.
Esta solicitud no implica ningún elemento.
Sintaxis de respuesta
1 2 3 4 5 6 7 8 |
HTTP/1.1 status_code Content-Type: type Date: date Content-Length: length Etag: etag Last-Modified: time <Object Content> |
Encabezados de respuesta
La respuesta a la solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 1.
Además de los encabezados de respuesta comunes, también se pueden usar los siguientes encabezados de mensaje. Para más detalles, consulte Tabla 3.
Encabezado |
Descripción |
---|---|
x-obs-expiration |
Cuando un objeto tiene su regla de ciclo de vida, el tiempo de caducidad del objeto está sujeto a esta regla. Este campo de encabezado es usar expiry-date para describir la fecha de caducidad del objeto. Si la regla de ciclo de vida está configurada sólo para todo el bucket, no para objetos individuales, el tiempo de expiración del objeto está sujeto a la regla de ciclo de vida del bucket. Este campo de encabezado utiliza expiry-date y rule-id para describir la información de caducidad detallada de los objetos. Si no se configura ninguna regla de ciclo de vida, este campo de encabezado no está contenido en la respuesta. Tipo: string |
x-obs-website-redirect-location |
Indica la ubicación redirigida. Si el bucket está configurado con información de sitio web, este parámetro se puede establecer para los metadatos de objeto de modo que el endpoint de sitio web evalúe la solicitud para el objeto como una redirección 301 a otro objeto en el mismo bucket o una URL externa. Tipo: string |
x-obs-delete-marker |
Indica si un objeto es un marcador de eliminación. Si el objeto no está marcado como eliminado, la respuesta no contiene este encabezado. Tipo: boolean Valores válidos: true o false El valor predeterminado es false. |
x-obs-version-id |
ID de versión del objeto. Si el objeto no tiene ningún número de versión especificado, la respuesta no contiene este encabezado. Valor válido: string de caracteres No hay ningún valor predeterminado. |
x-obs-server-side-encryption |
Este encabezado se incluye en una respuesta si se utiliza SSE-KMS. Tipo: string Ejemplo: x-obs-server-side-encryption:kms |
x-obs-server-side-encryption-kms-key-id |
Indica el ID de clave principal. Este encabezado se incluye en una respuesta si se utiliza SSE-KMS. Tipo: string Formato: regionID:domainID:key/key_id regionID es el ID de la región a la que pertenece la clave. domainID es el ID de cuenta del tenant al que pertenece la clave. key_id es el ID de clave utilizado en esta encriptación. Ejemplo: x-obs-server-side-encryption-kms-key-id:region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0 |
x-obs-server-side-encryption-customer-algorithm |
Indica un algoritmo de descifrado. Este encabezado se incluye en una respuesta si se utiliza SSE-C. Tipo: string Ejemplo: x-obs-server-side-encryption-customer-algorithm:AES256 |
x-obs-server-side-encryption-customer-key-MD5 |
Indica el valor MD5 de una clave utilizada para descifrar objetos. Este encabezado se incluye en una respuesta si se utiliza SSE-C. Tipo: string Ejemplo: x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ== |
x-obs-object-type |
Si el objeto no es normal, se devuelve este campo de encabezado. El valor puede ser Appendable. Tipo: string |
x-obs-next-append-position |
Este campo de encabezado se devuelve cuando el objeto es un objeto anexable. Tipo: integer |
Elementos de respuesta
Esta respuesta no contiene elementos.
Respuestas de error
No se devuelven respuestas de error especiales. Para obtener más información sobre las respuestas de error, consulte Tabla 2.
Solicitud de muestra 1
Descargar todo el objeto.
1 2 3 4 5 6 |
GET /object01 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:24:33 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s= |
Respuesta de muestra 1
1 2 3 4 5 6 7 8 9 10 11 12 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D3F2A89604C49ABEE55E Accept-Ranges: bytes ETag: "3b46eaf02d3b6b1206078bb86a7b7013" Last-Modified: WED, 01 Jul 2015 01:20:29 GMT Content-Type: binary/octet-stream x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSQwxJ2I1VvxD/Xgwuw2G2RQax30gdXU Date: WED, 01 Jul 2015 04:24:33 GMT Content-Length: 4572 [4572 Bytes object content] |
Solicitud de muestra 2
Descargar el rango especificado de un objeto (descargar un rango de un objeto).
1 2 3 4 5 6 7 |
GET /object01 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: Mon, 14 Sep 2020 09:59:04 GMT Range:bytes=20-30 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:mNPLWQMDWg30PTkAWiqJaLl3ALg= |
Descargar el rango especificado de un objeto (descargar varios rangos de un objeto).
1 2 3 4 5 6 7 |
GET /object01 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: Mon, 14 Sep 2020 10:02:43 GMT Range:bytes=20-30,40-50 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:ZwM7Vk2d7sD9o8zRsRKehgKQDkk= |
Respuesta de muestra 2
Descargar el rango especificado de un objeto (descargar un rango de un objeto).
1 2 3 4 5 6 7 8 9 10 11 12 13 |
HTTP/1.1 206 Partial Content Server: OBS x-obs-request-id: 000001748C0DBC35802E360C9E869F31 Accept-Ranges: bytes ETag: "2200446c2082f27ed2a569601ca4e360" Last-Modified: Mon, 14 Sep 2020 01:16:20 GMT Content-Range: bytes 20-30/4583 Content-Type: binary/octet-stream x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSn2JHu4okx9NBRNZAvBGaws3lt3g31g Date: Mon, 14 Sep 2020 09:59:04 GMT Content-Length: 11 [ 11 Bytes object content] |
Descargar el rango especificado de un objeto (descargar varios rangos de un objeto).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
HTTP/1.1 206 Partial Content Server: OBS x-obs-request-id: 8DF400000163D3F2A89604C49ABEE55E Accept-Ranges: bytes ETag: "2200446c2082f27ed2a569601ca4e360" Last-Modified: Mon, 14 Sep 2020 01:16:20 GMT Content-Type: multipart/byteranges;boundary=35bcf444-e65f-4c76-9430-7e4a68dd3d26 x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSIBWFOVW8eeWujkqSnoIANC2mNR1cdF Date: Mon, 14 Sep 2020 10:02:43 GMT Content-Length: 288 --35bcf444-e65f-4c76-9430-7e4a68dd3d26 Content-type: binary/octet-stream Content-range: bytes 20-30/4583 [ 11 Bytes object content] --35bcf444-e65f-4c76-9430-7e4a68dd3d26 Content-type: binary/octet-stream Content-range: bytes 40-50/4583 [ 11 Bytes object content] --35bcf444-e65f-4c76-9430-7e4a68dd3d26 |
Solicitud de muestra 3
Descargar una imagen redimensionada.
1 2 3 4 5 6 |
GET /example.jpg?x-image-process=image/resize,w_100 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:20:51 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:9Nsx45WjaVxlLnxlO9awasXn83N= |
Respuesta de muestra 3
1 2 3 4 5 6 7 8 9 10 11 12 13 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D3F2A89604C49ABEE55E x-image-process:image/resize,w_100 Accept-Ranges: bytes ETag: "3b46eaf02d3b6b1206078bb86a7b7013" Last-Modified: WED, 01 Jul 2015 01:20:29 GMT Content-Type: image/jpeg x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSQwxJ2I1VvxD/Xgwuw2G2RQax30gdXU Date: WED, 01 Jul 2015 04:20:51 GMT Content-Length: 49 [ 49 Bytes object content] |
Solicitud de muestra 4
Descargar un objeto si su valor Etag coincide.
1 2 3 4 5 6 7 |
GET /object01 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:24:33 GMT If-Match: 682e760adb130c60c120da3e333a8b09 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s= |
Respuesta de muestra 4-1 (etiqueta no coincidente)
Si el valor Etag del objeto almacenado no es 682e760adb130c60c120da3e333a8b09, el sistema muestra un mensaje que indica que la descarga falla.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
HTTP/1.1 412 Precondition Failed Server: OBS x-obs-request-id: 8DF400000163D3F2A89604C49ABEE55E Content-Type: application/xml x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSQwxJ2I1VvxD/Xgwuw2G2RQax30gdXU Date: WED, 01 Jul 2015 04:20:51 GMT <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Error> <Code>PreconditionFailed</Code> <Message>At least one of the pre-conditions you specified did not hold</Message> <RequestId>8DF400000163D3F2A89604C49ABEE55E</RequestId> <HostId>Hw0ZGaSKVm+uLOrCXXtx4Qn1aLzvoeblctVXRAqA7pty10mzUUW/yOzFue04lBqu</HostId> <Condition>If-Match</Condition> </Error> |
Respuesta de muestra 4-2 (descarga exitosa)
Si el valor Etag del objeto almacenado es 682e760adb130c60c120da3e333a8b09, la descarga se realiza correctamente.
1 2 3 4 5 6 7 8 9 10 11 12 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 5DEB00000164A21E1FC826C58F6BA001 Accept-Ranges: bytes ETag: "682e760adb130c60c120da3e333a8b09" Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT Content-Type: application/octet-stream x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSbkdml1sLSvKnoHaRcOwRI+6+ustDwk Date: Mon, 16 Jul 2015 08:04:00 GMT Content-Length: 8 [ 8 Bytes object content] |
Solicitud de muestra 5
Llevar la firma en la URL cuando descargue un objeto.
GET /object02?AccessKeyId=H4IPJX0TQTHTHEBQQCEC&Expires=1532688887&Signature=EQmDuOhWLUrzrzRNZxwS72CXeXM%3D HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: Fri, 27 Jul 2018 10:52:31 GMT
Respuesta de muestra 5
1 2 3 4 5 6 7 8 9 10 11 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 804F00000164DB5E5B7FB908D3BA8E00 ETag: "682e760adb130c60c120da3e333a8b09" Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT Content-Type: application/octet-stream x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTlpxILjhVK/heKOWIP8Wn2IWmQoerfw Date: Fri, 27 Jul 2018 10:52:31 GMT Content-Length: 8 [ 8 Bytes object content] |
Solicitud de muestra 6
Utilizar el parámetro response-content-disposition para descargar y cambiar el nombre de un objeto.
1 2 3 4 5 6 |
GET /object01?response-content-disposition=attachment; filename*=utf-8''name1 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:24:33 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s= |
Respuesta de muestra 6
1 2 3 4 5 6 7 8 9 10 11 12 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 804F00000164DB5E5B7FB908D3BA8E00 ETag: "682e760adb130c60c120da3e333a8b09" Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT Content-Type: application/octet-stream x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTlpxILjhVK/heKOWIP8Wn2IWmQoerfw Date: Fri, 27 Jul 2018 10:52:31 GMT Content-Length: 8 Content-Disposition: attachment; filename*=utf-8''name1 [ 8 Bytes object content] |
Solicitud de muestra 7
Utilizar el parámetro attname para descargar y cambiar el nombre de un objeto.
1 2 3 4 5 6 |
GET /object01?attname=name1 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:24:33 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:NxtSMS0jaVxlLnxlO9awaMTn47s= |
Respuesta de muestra 7
1 2 3 4 5 6 7 8 9 10 11 12 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 804F00000164DB5E5B7FB908D3BA8E00 ETag: "682e760adb130c60c120da3e333a8b09" Last-Modified: Mon, 16 Jul 2015 08:03:34 GMT Content-Type: application/octet-stream x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTlpxILjhVK/heKOWIP8Wn2IWmQoerfw Date: Fri, 27 Jul 2018 10:52:31 GMT Content-Length: 8 Content-Disposition: attachment; filename*=utf-8''name1 [ 8 Bytes object content] |