Operaciones de objetos

Las modernas capacidades de IBM Cloud® Object Storage están convenientemente disponibles a través de una API RESTful. Aquí se documentan las operaciones y métodos para leer, escribir y configurar objetos (almacenados en un grupo).

Para obtener más información sobre puntos finales, consulte Puntos finales y ubicaciones de almacenamiento.

Nota relativa a la autenticación de clave de acceso/secreto (HMAC)

Al autenticarse en la instancia de IBM Cloud Object Storage utilizando credenciales HMAC, necesita la información que se representa en la Tabla 1 al construir una firma HMAC.

Componentes de la firma HMAC
Clave Valor Ejemplo
{access_key} Clave de acceso asignada a su credencial de servicio cf4965cebe074720a4929759f57e1214
{date} La fecha con formato de la solicitud (yyyymmdd) 20180613
{region} El código de ubicación del punto final estándar us
{signature} El hash creado utilizando la clave secreta, la ubicación y la fecha ffe2b6e18f9dcc41f593f4dbb39882a6bb4d26a73a04326e62a8d344e07c1a3e
{timestamp} Fecha y hora con formato de la solicitud 20180614T001804Z

Carga de un objeto

Un mandato PUT con una vía de acceso a un objeto carga el cuerpo de la solicitud como un objeto. Todos los objetos cargados en una sola hebra deben ser menores de 500 MB para minimizar el riesgo de interrupciones en la red. (los objetos que se cargan en varias partes pueden ser tan grandes como 10 TB).

Información de identificación personal (PII): al nombrar buckets u objetos, no utilice ninguna información que pueda identificar a ningún usuario (persona física) por su nombre, ubicación o cualquier otro medio.

Es posible transmitir objetos de hasta 5 GB utilizando una única solicitud PUT. Las cargas de varias partes son más fiables y se pueden cargar de forma más eficiente utilizando varias hebras para cargar partes en paralelo. La carga de objetos más grandes en una sola solicitud de PUT da como resultado las limitaciones de rendimiento de una sola hebra y, en caso de que se produzcan anomalías, las cargas de una sola hebra se tendrán que reintentar en su totalidad (mientras que con MPU sólo es necesario reintentar las partes específicas que han fallado). El rendimiento preciso que se puede alcanzar con un solo subproceso varía en función del ancho de banda de la red desde el cliente hasta el punto final IBM Cloud, la tasa de pérdida de paquetes (si la hay) en esa conexión, el uso de HTTP frente a HTTPS, los cifrados específicos utilizados en la conexión y los parámetros específicos de la conexión TCP (como el tamaño de la ventana), así como otros factores. Aunque estos factores se pueden optimizar para una carga de una sola hebra, las optimizaciones se aplicarían igualmente a cualquier carga de varias hebras (de varias partes).

Información de identificación personal (PII): al crear depósitos o añadir objetos, asegúrese de no utilizar ninguna información que pueda identificar a ningún usuario (persona física) por su nombre, ubicación o cualquier otro medio.

Sintaxis

PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style

Cabeceras opcionales

Cabeceras opcionales
Cabecera Tipo Descripción
x-amz-tagging string Un conjunto de etiquetas para aplicar al objeto, formateado como parámetros de consulta ("SomeKey=SomeValue").
x-amz-object-lock-mode string El valor válido es COMPLIANCE o GOVERNANCE- requerido si x-amz-object-lock-retain-until-date está presente.
x-amz-object-lock-retain-until-date ISO8601 Fecha y hora Necesario si x-amz-object-lock-mode está presente.
x-amz-object-lock-legal-hold string Los valores válidos son ON o OFF.
Content-MD5 Serie El hash 128-bit MD5 codificado con el algoritmo de hash de bloque ( Base64 ) de la carga útil, que se utiliza como comprobación de integridad para garantizar que la carga útil no se ha alterado durante la transmisión.
x-amz-checksum-crc32 Serie Esta cabecera es la suma de comprobación de 32 bits CRC32 codificada en Base64 del objeto.
x-amz-checksum-crc32c Serie Esta cabecera es la suma de comprobación de 32 bits CRC32C codificada en Base64 del objeto.
x-amz-checksum-crc64nvme Serie Esta cabecera es la suma de comprobación de 64 bits CRC64NVME codificada en Base64 del objeto. La suma de comprobación de CRC64NVME es siempre una suma de comprobación de objeto completo.
x-amz-checksum-sha1 Serie Este encabezado es el Base64 codificado, 160-bit SHA1 digest del objeto.
x-amz-checksum-sha256 Serie Este encabezado es el Base64 codificado, 256-bit SHA256 digest del objeto.
x-amz-sdk-checksum-algorithm Serie Indica el algoritmo utilizado para crear la suma de comprobación del objeto cuando se utiliza el SDK.
x-amz-trailer Serie Indica qué encabezado de valor de suma de comprobación se encontrará en el remolque de la carga útil para verificar la integridad de la carga del objeto.

Solicitud de ejemplo

PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud

Content-Length: 533

 The 'queen' bee is developed from larvae selected by worker bees and fed a
 substance referred to as 'royal jelly' to accelerate sexual maturity. After a
 short while the 'queen' is the mother of nearly every bee in the hive, and
 the colony will fight fiercely to protect her.

Solicitud de ejemplo

PUT /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-content-sha256: {payload_hash}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud

Content-Length: 533

 The 'queen' bee is developed from larvae selected by worker bees and fed a
 substance referred to as 'royal jelly' to accelerate sexual maturity. After a
 short while the 'queen' is the mother of nearly every bee in the hive, and
 the colony will fight fiercely to protect her.

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
x-amz-checksum-crc64nvme: T1r5SUWc07k=
x-amz-checksum-type: FULL_OBJECT
Content-Length: 0

Obtención de las cabeceras de un objeto

Un mandato HEAD con una vía de acceso a un objeto recupera las cabeceras de ese objeto.

El Etag valor devuelto para los objetos cifrados con SSE-KP es el hash MD5 e del objeto original descifrado.

Sintaxis

HEAD https://{endpoint}/{bucket-name}/{object-name} # path style
HEAD https://{bucket-name}.{endpoint}/{object-name} # virtual host style

Cabeceras opcionales

Cabeceras opcionales
Cabecera Tipo Descripción
x-amz-checksum-mode string Indica si se incluyen o no metadatos de suma de comprobación en la respuesta.

Solicitud de ejemplo

HEAD /apiary/soldier-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net

Solicitud de ejemplo

HEAD /apiary/soldier-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:32:44 GMT
X-Clv-Request-Id: da214d69-1999-4461-a130-81ba33c484a6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: da214d69-1999-4461-a130-81ba33c484a6
ETag: "37d4c94839ee181a2224d6242176c4b5"
x-amz-checksum-crc64nvme: T1r5SUWc07k=
x-amz-checksum-type: FULL_OBJECT
Content-Type: text/plain; charset=UTF-8
Last-Modified: Thu, 25 Aug 2016 17:49:06 GMT
Content-Length: 11

Descarga de un objeto

Un mandato GET con una vía de acceso a un objeto descarga el objeto.

El valor Etag que se devuelve para los objetos cifrados mediante SSE-C/SSE-KP no será el hash MD5 del objeto descifrado original.

Sintaxis

GET https://{endpoint}/{bucket-name}/{object-name} # path style
GET https://{bucket-name}.{endpoint}/{object-name} # virtual host style

Cabeceras opcionales

Cabecera Tipo Descripción
range Serie Devuelve los bytes de un objeto dentro del rango especificado.
x-amz-checksum-mode Serie Indica si se incluyen o no metadatos de suma de comprobación en la respuesta.

Solicitud de ejemplo

GET /apiary/worker-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Solicitud de ejemplo

GET /apiary/worker-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:34:25 GMT
X-Clv-Request-Id: 116dcd6b-215d-4a81-bd30-30291fa38f93
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 116dcd6b-215d-4a81-bd30-30291fa38f93
ETag: "d34d8aada2996fc42e6948b926513907"
Content-Type: text/plain; charset=UTF-8
Last-Modified: Thu, 25 Aug 2016 17:46:53 GMT
Content-Length: 467

 Female bees that are not fortunate enough to be selected to be the 'queen'
 while they were still larvae become known as 'worker' bees. These bees lack
 the ability to reproduce and instead ensure that the hive functions smoothly,
 acting almost as a single organism in fulfilling their purpose.

Supresión de un objeto

Un mandato DELETE con una vía de acceso a un objeto suprime el objeto.

Sintaxis

DELETE https://{endpoint}/{bucket-name}/{object-name} # path style
DELETE https://{bucket-name}.{endpoint}/{object-name} # virtual host style

Solicitud de ejemplo

DELETE /apiary/soldier-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net

Solicitud de ejemplo

DELETE /apiary/soldier-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

Respuesta de ejemplo

HTTP/1.1 204 No Content
Date: Thu, 25 Aug 2016 17:44:57 GMT
X-Clv-Request-Id: 8ff4dc32-a6f0-447f-86cf-427b564d5855
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 8ff4dc32-a6f0-447f-86cf-427b564d5855

Supresión de varios objetos

Un mandato POST con una vía de acceso a un grupo y con los parámetros adecuados suprime un conjunto de objetos especificado. Se requiere un encabezado Content-MD5 o un encabezado checksum (incluyendo x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1, o x-amz-checksum-sha256) como comprobación de integridad para la carga útil.

Cabeceras opcionales

Cabeceras opcionales
Cabecera Tipo Descripción
Content-MD5 Serie El hash 128 bits MD5 codificado con el algoritmo de hash de bloque ( base64 ) de la carga útil, que se utiliza como comprobación de integridad para garantizar que la carga útil no se ha alterado durante la transmisión.
x-amz-checksum-crc32 Serie Esta cabecera es la suma de comprobación de 32 bits CRC32 codificada en Base64 del objeto.
x-amz-checksum-crc32c Serie Esta cabecera es la suma de comprobación de 32 bits CRC32C codificada en Base64 del objeto.
x-amz-checksum-crc64nvme Serie Esta cabecera es la suma de comprobación de 64 bits CRC64NVME codificada en Base64 del objeto. La suma de comprobación de CRC64NVME es siempre una suma de comprobación de objeto completo.
x-amz-checksum-sha1 Serie Este encabezado es el Base64 codificado, 160-bit SHA1 digest del objeto.
x-amz-checksum-sha256 Serie Este encabezado es el Base64 codificado, 256-bit SHA256 digest del objeto.

Cuando no se encuentra un objeto especificado en la solicitud, el resultado se devuelve como eliminado.

Las supresiones de varios objetos implican un POST operation que se carga como clase A. El coste de la solicitud de POST para varias supresiones varía en función de la clase de almacenamiento de los objetos y de la cantidad de datos que se suprimen. Para obtener más información sobre los precios, consulte la página de precios de IBM Cloud Object Storage.

Elementos opcionales

Cabecera
Cabecera Tipo Descripción
Quiet Boolean Habilita la modalidad silenciosa (quiet) para la solicitud.

La solicitud puede contener un máximo de 1000 claves que desea suprimir. Si bien esto resulta útil para reducir el número de solicitudes, tenga cuidado cuando vaya a suprimir un gran número de claves. Tenga también en cuenta los tamaños de los objetos para garantizar un rendimiento adecuado.

El código siguiente muestra un ejemplo de cómo crear la representación necesaria del contenido de cabecera:

echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64

Sintaxis

POST https://{endpoint}/{bucket-name}?delete= # path style
POST https://{bucket-name}.{endpoint}?delete= # virtual host style

El cuerpo de la solicitud debe contener un bloque XML con el esquema siguiente:

Cuerpo del esquema de solicitud
Elemento Tipo Hijos Predecesor Restricción
Suprimir Contenedor Objecto
Objecto Contenedor Clave Suprimir
Clave Serie
Objecto Serie de clave válida

Solicitud de ejemplo

POST /apiary?delete= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Type: text/plain; charset=utf-8
Content-MD5: xj/vf7lD7vbIe/bqHTaLvg==

Solicitud de ejemplo

POST /apiary?delete= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain; charset=utf-8
Content-MD5: xj/vf7lD7vbIe/bqHTaLvg==
Host: s3.us.cloud-object-storage.appdomain.cloud

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Wed, 30 Nov 2016 18:54:53 GMT
X-Clv-Request-Id: a6232735-c3b7-4c13-a7b2-cd40c4728d51
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: a6232735-c3b7-4c13-a7b2-cd40c4728d51
Content-Type: application/xml
Content-Length: 207
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Deleted>
         <Key>surplus-bee</Key>
    </Deleted>
    <Deleted>
         <Key>unnecessary-bee</Key>
    </Deleted>
</DeleteResult>

Añadir o actualizar la retención de un objeto

Una PUT emitida a un objeto con los parámetros adecuados añade o amplía el período de retención. En COMPLIANCE el modo, el período de retención solo se puede ampliar, pero no acortar ni eliminar. En GOVERNANCE el modo, los usuarios autorizados pueden ampliar, acortar o eliminar el período de retención incluyendo el x-amz-bypass-governance-retention encabezado.

Sintaxis

PUT https://{endpoint}/{bucket-name}/{object-name}?retention # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?retention # virtual host style

Elementos de carga útil

El cuerpo de la solicitud debe contener un bloque XML con el esquema siguiente:

Cuerpo del esquema de solicitud
Elemento Tipo Hijos Predecesor Notas
Retención Contenedor Modo, RetainUntilDate
Obligatorio
Modalidad Serie
Retención Requerido: el valor válido es COMPLIANCE o GOVERNANCE
RetainUntilDate Indicación de fecha y hora
Retención Obligatorio

Cabeceras opcionales

Cabecera Tipo Descripción
x-amz-bypass-governance-retention Serie Este encabezado permite a los usuarios autorizados anular la configuración de retención del modo GOVERNANCE para eliminar o modificar un objeto antes de su fecha de retención.

El código siguiente muestra un ejemplo de cómo crear la representación necesaria del contenido de cabecera:

echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64

Solicitud de ejemplo

Este es un ejemplo de cómo añadir o ampliar la retención en un objeto.

PUT /apiary/myObject?retention HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Content-MD5: cDeRJIdLuEXWmLpA79K2kg==
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
<Retention>
    <Mode>COMPLIANCE</Mode>
    <RetainUntilDate>2023-04-12T23:01:00.000Z</RetainUntilDate>
</Retention>

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0


Añadir etiquetas a un objeto

Un PUT emitido para un objeto con los parámetros adecuados crea o sustituye un conjunto de etiquetas de valor de clave asociadas con el objeto.

Sintaxis

PUT https://{endpoint}/{bucket-name}/{object-name}?tagging # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?tagging # virtual host style

Elementos de carga útil

El cuerpo de la solicitud debe contener un bloque XML con el esquema siguiente:

Cuerpo del esquema de solicitud
Elemento Tipo Hijos Predecesor Notas
Etiquetado Contenedor TagSet
Obligatorio
TagSet Contenedor Etiqueta Etiquetado Obligatorio
Etiqueta Serie Clave, Valor TagSet Obligatorio
Clave Contenedor
Etiqueta Obligatorio
Valor Serie
Etiqueta Obligatorio

Las etiquetas deben cumplir con las siguientes restricciones:

  • Un objeto puede tener un máximo de 10 etiquetas
  • Para cada objeto, cada clave de etiqueta debe ser exclusiva y cada clave de etiqueta sólo puede tener un valor.
  • Longitud mínima de clave-1 caracteres Unicode en UTF-8
  • Longitud máxima de clave-128 caracteres Unicode en UTF-8
  • Tamaño máximo de bytes de clave-256 bytes
  • Longitud mínima de valor-0 caracteres Unicode en UTF-8 (el valor de etiqueta puede estar vacío)
  • Longitud máxima de valor-256 caracteres Unicode en UTF-8
  • Tamaño máximo de byte de valor-512 bytes
  • La clave y el valor de una etiqueta pueden consistir en caracteres alfanuméricos estadounidenses (a-z,A-Z,0-9), y espacios representables en UTF-8, y los siguientes símbolos: +, -, =, ., _, :, /, @
  • Las claves de etiqueta y los valores distinguen entre mayúsculas y minúsculas
  • ibm: no se puede utilizar como prefijo de clave para etiquetas
Cabeceras opcionales
Cabecera Tipo Descripción
Content-MD5 Serie El hash 128-bit MD5 codificado con el algoritmo de hash de bloque ( Base64 ) de la carga útil, que se utiliza como comprobación de integridad para garantizar que la carga útil no se ha alterado durante la transmisión.
x-amz-checksum-crc32 Serie Esta cabecera es la suma de comprobación de 32 bits CRC32 codificada en Base64 del objeto.
x-amz-checksum-crc32c Serie Esta cabecera es la suma de comprobación de 32 bits CRC32C codificada en Base64 del objeto.
x-amz-checksum-crc64nvme Serie Esta cabecera es la suma de comprobación de 64 bits CRC64NVME codificada en Base64 del objeto. La suma de comprobación de CRC64NVME es siempre una suma de comprobación de objeto completo.
x-amz-checksum-sha1 Serie Este encabezado es el Base64 codificado, 160-bit SHA1 digest del objeto.
x-amz-checksum-sha256 Serie Este encabezado es el Base64 codificado, 256-bit SHA256 digest del objeto.
x-amz-sdk-checksum-algorithm Serie Indica el algoritmo utilizado para crear la suma de comprobación del objeto cuando se utiliza el SDK.

Solicitud de ejemplo

Este es un ejemplo de adición de un conjunto de etiquetas a un objeto.

PUT /apiary/myObject?tagging HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
PUT /apiary/myObject?tagging HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 128
<Tagging>
   <TagSet>
      <Tag>
         <Key>string</Key>
         <Value>string</Value>
      </Tag>
   </TagSet>
</Tagging>

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0

Leer las etiquetas de un objeto

Un GET emitido para un objeto con los parámetros adecuados devuelve el conjunto de etiquetas de valor de clave asociadas con el objeto.

Sintaxis

GET https://{endpoint}/{bucket-name}/{object-name}?tagging # path style
GET https://{bucket-name}.{endpoint}/{object-name}?tagging # virtual host style

Solicitud de ejemplo

Este es un ejemplo de lectura de un conjunto de etiquetas de objeto.

GET /apiary/myObject?tagging HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 0
GET /apiarymyObject?tagging HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 0

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 128
<Tagging>
   <TagSet>
      <Tag>
         <Key>string</Key>
         <Value>string</Value>
      </Tag>
   </TagSet>
</Tagging>

Suprimir etiquetas de un objeto

Un DELETE emitido a un grupo con los parámetros adecuados elimina las etiquetas de un objeto.

Sintaxis

DELETE https://{endpoint}/{bucket-name}{object-name}?tagging # path style
DELETE https://{bucket-name}.{endpoint}{object-name}?tagging # virtual host style

Solicitud de ejemplo

Este es un ejemplo de supresión de las etiquetas de un objeto.

DELETE /apiary/myObject?tagging HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Solicitud de ejemplo

DELETE /apiary/myObject?tagging HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

El servidor responde con 204 No Content.


Copia de un objeto

Un mandato PUT con una vía de acceso a un objeto nuevo crea una nueva copia de otro objeto especificado por la cabecera x-amz-copy-source. A menos que se alteren de otro modo, los metadatos siguen siendo los mismos.

Información de identificación personal (PII): al nombrar buckets u objetos, no utilice ninguna información que pueda identificar a ningún usuario (persona física) por su nombre, ubicación o cualquier otro medio.

La copia de objetos (incluso entre ubicaciones) no incurre en los cargos de ancho de banda de salida público. Todos los datos permanecen dentro de la red interna de COS.

Sintaxis

PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style

Cabeceras opcionales

Cabecera Tipo Descripción
x-amz-metadata-directive serie (COPY o REPLACE) REPLACE sobrescribe los metadatos originales con los nuevos metadatos que se proporcionan.
x-amz-tagging string Un conjunto de etiquetas para aplicar al objeto, formateado como parámetros de consulta ("SomeKey=SomeValue").
x-amz-tagging-directive serie (COPY o REPLACE) A REPLACE sobrescribe las etiquetas originales con las nuevas etiquetas proporcionadas.
x-amz-copy-source-if-match Serie (ETag) Crea una copia si el valor ETag especificado coincide con el objeto de origen.
x-amz-copy-source-if-none-match Serie (ETag) Crea una copia si el valor ETag especificado es distinto del objeto de origen.
x-amz-copy-source-if-unmodified-since Serie (indicación de fecha y hora) Crea una copia si el objeto de origen no se ha modificado desde la fecha especificada. La fecha debe ser una fecha HTTP válida (por ejemplo, Wed, 30 Nov 2016 20:21:38 GMT).
x-amz-copy-source-if-modified-since Serie (indicación de fecha y hora) Crea una copia si el objeto de origen se ha modificado desde la fecha especificada. La fecha debe ser una fecha HTTP válida (por ejemplo, Wed, 30 Nov 2016 20:21:38 GMT).
x-amz-checksum-algorithm Serie Indica qué algoritmo de suma de comprobación se utilizará para crear la suma de comprobación del objeto de destino.

Solicitud de ejemplo

Este ejemplo básico toma el objeto bee del grupo garden y crea una copia en el grupo apiary con la nueva clave wild-bee.

PUT /apiary/wild-bee HTTP/1.1
Authorization: Bearer {token}
x-amz-copy-source: /garden/bee
Host: s3.us.cloud-object-storage.appdomain.cloud

Solicitud de ejemplo

PUT /apiary/wild-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-copy-source: /garden/bee
Host: s3.us.cloud-object-storage.appdomain.cloud

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Wed, 30 Nov 2016 19:52:52 GMT
X-Clv-Request-Id: 72992a90-8f86-433f-b1a4-7b1b33714bed
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: 72992a90-8f86-433f-b1a4-7b1b33714bed
ETag: "853aab195ce770b0dfb294a4e9467e62"
Content-Type: application/xml
Content-Length: 240
<CopyObjectResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <LastModified>2016-11-30T19:52:53.125Z</LastModified>
  <ETag>"853aab195ce770b0dfb294a4e9467e62"</ETag>
</CopyObjectResult>

Comprobación de la configuración de CORS de un objeto

Un mandato OPTIONS con una vía de acceso a un objeto junto con un origen y un tipo de solicitud comprueba si se puede acceder a dicho objeto desde ese origen mediante este tipo de solicitud. A diferencia de las demás solicitudes, una solicitud OPTIONS no requiere las cabeceras authorization ni x-amx-date.

Sintaxis

OPTIONS https://{endpoint}/{bucket-name}/{object-name} # path style
OPTIONS https://{bucket-name}.{endpoint}/{object-name} # virtual host style

Solicitud de ejemplo

OPTIONS /apiary/queen-bee HTTP/1.1
Access-Control-Request-Method: PUT
Origin: http://ibm.com
Host: s3.us.cloud-object-storage.appdomain.cloud

Solicitud de ejemplo

OPTIONS /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Access-Control-Request-Method: PUT
Origin: http://ibm.com
Host: s3.us.cloud-object-storage.appdomain.cloud

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Wed, 07 Dec 2016 16:23:14 GMT
X-Clv-Request-Id: 9a2ae3e1-76dd-4eec-a8f2-1a7f60f63483
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: 9a2ae3e1-76dd-4eec-a8f2-1a7f60f63483
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: PUT
Access-Control-Allow-Credentials: true
Vary: Origin, Access-Control-Request-Headers, Access-Control-Allow-Methods
Content-Length: 0


Carga de objetos en varias partes

Cuando se trabaja con objetos grandes, se recomienda utilizar operaciones de carga de varias partes para escribir objetos en IBM Cloud® Object Storage. Una carga de un solo objeto se puede realizar como un conjunto de partes, y dichas partes se pueden cargar de forma independiente en cualquier orden o en paralelo. Una vez finalizada la carga, Object Storage presenta todas las partes como un solo objeto. Esto ofrece varias ventajas: las interrupciones de red no dan lugar a fallos en cargas grandes, las cargas se pueden poner en pausa y reiniciar a lo largo del tiempo, y los objetos pueden cargarse a medida que se crean.

Las cargas de varias partes solo están disponibles para los objetos de más de 5 MB. Para los objetos de menos de 50 GB, se recomienda un tamaño de parte de entre 20 MB y 100 MB para obtener un rendimiento óptimo. En el caso de objetos más grandes, el tamaño de las partes se puede aumentar sin que ello afecte al rendimiento de forma significativa.

Debido a la complejidad adicional que esto implica, se recomienda que los desarrolladores utilicen una biblioteca que proporcione soporte de carga de varias partes.

Las cargas de varias partes incompletas persisten hasta que se suprime el objeto o se termina de forma anómala la carga de varias partes con AbortIncompleteMultipartUpload. Si no se termina de forma anómala una carga de varias partes incompleta, la carga parcial continúa utilizando recursos. Las interfaces se deben diseñar teniendo esto en cuenta, de modo que limpien las cargas de varias partes incompletas.

El proceso de carga de un objeto en varias partes consta de tres fases:

  1. La carga se inicia y se crea un UploadId.
  2. Las partes individuales se cargan especificando sus números de pieza secuenciales y el UploadId correspondiente al objeto.
  3. Cuando todas las partes se han terminado de cargar, la carga se completa enviando una solicitud con el UploadId y un bloque XML que enumera cada número de pieza y su respectivo valor de Etag.

Inicio de una carga de varias partes

Una operación POST emitida a un objeto con el parámetro de consulta upload crea un nuevo valor de UploadId, al que cada parte del objeto que se carga hace referencia.

Información de identificación personal (PII): al nombrar buckets u objetos, no utilice ninguna información que pueda identificar a ningún usuario (persona física) por su nombre, ubicación o cualquier otro medio.

Sintaxis

POST https://{endpoint}/{bucket-name}/{object-name}?uploads= # path style
POST https://{bucket-name}.{endpoint}/{object-name}?uploads= # virtual host style

Cabeceras opcionales

Cabeceras opcionales
Cabecera Tipo Descripción
x-amz-checksum-algorithm Serie Indica qué algoritmo de suma de comprobación se utilizará para crear la suma de comprobación de todo el objeto multiparte.
x-amz-checksum-type Serie Indica qué tipo de suma de comprobación se utilizará para crear la suma de comprobación de todo el objeto multiparte.

Solicitud de ejemplo

POST /some-bucket/multipart-object-123?uploads= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Solicitud de ejemplo

POST /some-bucket/multipart-object-123?uploads= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Fri, 03 Mar 2017 20:34:12 GMT
X-Clv-Request-Id: 258fdd5a-f9be-40f0-990f-5f4225e0c8e5
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
Content-Type: application/xml
Content-Length: 276
<InitiateMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Bucket>some-bucket</Bucket>
  <Key>multipart-object-123</Key>
  <UploadId>0000015a-95e1-4326-654e-a1b57887784f</UploadId>
</InitiateMultipartUploadResult>

Carga de una parte

Una solicitud PUT que se emite a un objeto con los parámetros de consulta partNumber y uploadId cargará una parte de un objeto. Las partes se pueden cargar en serie o en paralelo, pero se deben numerar en orden.

Información de identificación personal (PII): al nombrar buckets u objetos, no utilice ninguna información que pueda identificar a ningún usuario (persona física) por su nombre, ubicación o cualquier otro medio.

Sintaxis

PUT https://{endpoint}/{bucket-name}/{object-name}?partNumber={sequential-integer}&uploadId={uploadId}= # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?partNumber={sequential-integer}&uploadId={uploadId}= # virtual host style

Cabeceras opcionales

Cabeceras opcionales
Cabecera Tipo Descripción
Content-MD5 Serie El hash 128-bit MD5 codificado con el algoritmo de hash de bloque ( Base64 ) de la carga útil, que se utiliza como comprobación de integridad para garantizar que la carga útil no se ha alterado durante la transmisión.
x-amz-checksum-crc32 Serie Esta cabecera es la suma de comprobación de 32 bits CRC32 codificada en Base64 del objeto.
x-amz-checksum-crc32c Serie Esta cabecera es la suma de comprobación de 32 bits CRC32C codificada en Base64 del objeto.
x-amz-checksum-crc64nvme Serie Esta cabecera es la suma de comprobación de 64 bits CRC64NVME codificada en Base64 del objeto. La suma de comprobación de CRC64NVME es siempre una suma de comprobación de objeto completo.
x-amz-checksum-sha1 Serie Este encabezado es el Base64 codificado, 160-bit SHA1 digest del objeto.
x-amz-checksum-sha256 Serie Este encabezado es el Base64 codificado, 256-bit SHA256 digest del objeto.
x-amz-sdk-checksum-algorithm Serie Indica el algoritmo utilizado para crear la suma de comprobación del objeto cuando se utiliza el SDK.
x-amz-trailer Serie Indica qué encabezado de valor de suma de comprobación se encontrará en el remolque de la carga útil para verificar la integridad de la carga del objeto.

Solicitud de ejemplo

PUT /some-bucket/multipart-object-123?partNumber=1&uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/pdf
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 13374550

Solicitud de ejemplo

PUT /some-bucket/multipart-object-123?partNumber=1&uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD
Content-Encoding: aws-chunked
x-amz-decoded-content-length: 13374550
Content-Type: application/pdf
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 13374550

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Sat, 18 Mar 2017 03:56:41 GMT
X-Clv-Request-Id: 17ba921d-1c27-4f31-8396-2e6588be5c6d
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
ETag: "7417ca8d45a71b692168f0419c17fe2f"
Content-Length: 0

Obtención de una lista de las partes

Un mandato GET con una vía de acceso a un objeto de varias partes con un UploadID activo especificado como parámetro de consulta devuelve una lista de todas las partes del objeto.

Sintaxis

GET https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId} # path style
GET https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId} # virtual host style

Parámetros de consulta

Parámetros
Parámetro ¿Obligatorio? Tipo Descripción
uploadId Required string ID de carga devuelto al inicializar una carga de varias partes.
max-parts Opcional string Toma como valor predeterminado 1.000.
part-number​-marker Opcional string Define dónde empieza la lista de partes.

Solicitud de ejemplo

GET /farm/spaceship?uploadId=01000162-3f46-6ab8-4b5f-f7060b310f37 HTTP/1.1
Authorization: bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Solicitud de ejemplo

GET /farm/spaceship?uploadId=01000162-3f46-6ab8-4b5f-f7060b310f37 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Mon, 19 Mar 2018 17:21:08 GMT
X-Clv-Request-Id: 6544044d-4f88-4bb6-9ee5-bfadf5023249
Server: Cleversafe/3.12.4.20
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
Content-Type: application/xml
Content-Length: 743
<ListPartsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Bucket>farm</Bucket>
  <Key>spaceship</Key>
  <UploadId>01000162-3f46-6ab8-4b5f-f7060b310f37</UploadId>
  <Initiator>
    <ID>d6f04d83-6c4f-4a62-a165-696756d63903</ID>
    <DisplayName>d6f04d83-6c4f-4a62-a165-696756d63903</DisplayName>
  </Initiator>
  <Owner>
    <ID>d6f04d83-6c4f-4a62-a165-696756d63903</ID>
    <DisplayName>d6f04d83-6c4f-4a62-a165-696756d63903</DisplayName>
  </Owner>
  <StorageClass>STANDARD</StorageClass>
  <MaxParts>1000</MaxParts>
  <IsTruncated>false</IsTruncated>
  <Part>
    <PartNumber>1</PartNumber>
    <LastModified>2018-03-19T17:20:35.482Z</LastModified>
    <ETag>"bb03cf4fa8603fe407a65ee1dba55265"</ETag>
    <Size>7128094</Size>
  </Part>
</ListPartsResult>

Finalización de una carga de varias partes

Una solicitud POST que se emite a un objeto con el parámetro de consulta uploadId y el bloque XML adecuado en el cuerpo completarán una carga de varias partes.

Sintaxis

POST https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId}= # path style
POST https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId}= # virtual host style

Cabeceras opcionales

Cabecera opcional
Cabecera Tipo Descripción
x-amz-checksum-crc32 Serie Esta cabecera es la suma de comprobación de 32 bits CRC32 codificada en Base64 del objeto.
x-amz-checksum-crc32c Serie Esta cabecera es la suma de comprobación de 32 bits CRC32C codificada en Base64 del objeto.
x-amz-checksum-crc64nvme Serie Esta cabecera es la suma de comprobación de 64 bits CRC64NVME codificada en Base64 del objeto. La suma de comprobación de CRC64NVME es siempre una suma de comprobación de objeto completo.
x-amz-checksum-sha1 Serie Este encabezado es el Base64 codificado, 160-bit SHA1 digest del objeto.
x-amz-checksum-sha256 Serie Este encabezado es el Base64 codificado, 256-bit SHA256 digest del objeto.
x-amz-checksum-type Serie Indica qué tipo de suma de comprobación se utilizará para crear la suma de comprobación de todo el objeto multiparte.

El cuerpo de la solicitud debe contener un bloque XML con el esquema siguiente:

Cuerpo del esquema de solicitud
Elemento Tipo Hijos Predecesor Restricción
CompleteMultipartUpload Contenedor Componente
Componente Contenedor PartNumber, ETag Suprimir
PartNumber Serie
Objecto Número de pieza válido
ETag Serie
Objecto Serie de valor ETag válida
<CompleteMultipartUpload>
  <Part>
    <PartNumber>{sequential part number}</PartNumber>
    <ETag>{ETag value from part upload response header}</ETag>
  </Part>
</CompleteMultipartUpload>

Solicitud de ejemplo

POST /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 257

Solicitud de ejemplo

POST /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 257
<CompleteMultipartUpload>
  <Part>
    <PartNumber>1</PartNumber>
    <ETag>"7417ca8d45a71b692168f0419c17fe2f"</ETag>
  </Part>
  <Part>
    <PartNumber>2</PartNumber>
    <ETag>"7417ca8d45a71b692168f0419c17fe2f"</ETag>
  </Part>
</CompleteMultipartUpload>

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Fri, 03 Mar 2017 19:18:44 GMT
X-Clv-Request-Id: c8be10e7-94c4-4c03-9960-6f242b42424d
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
ETag: "765ba3df36cf24e49f67fc6f689dfc6e-2"
Content-Type: application/xml
Content-Length: 364
<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Location>http://s3.us.cloud-object-storage.appdomain.cloud/zopse/multipart-object-123</Location>
  <Bucket>some-bucket</Bucket>
  <Key>multipart-object-123</Key>
  <ETag>"765ba3df36cf24e49f67fc6f689dfc6e-2"</ETag>
</CompleteMultipartUploadResult>

Terminación anómala de cargas de varias partes incompletas

Una solicitud DELETE emitida a un objeto con el parámetro de consulta uploadId suprime todas las partes inacabadas de una carga de varias partes.

Sintaxis

DELETE https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId}= # path style
DELETE https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId}= # virtual host style

Solicitud de ejemplo

DELETE /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

Solicitud de ejemplo

DELETE /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

Respuesta de ejemplo

HTTP/1.1 204 No Content
Date: Thu, 16 Mar 2017 22:07:48 GMT
X-Clv-Request-Id: 06d67542-6a3f-4616-be25-fc4dbdf242ad
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5

Restauración temporal de un objeto archivado

Una solicitud POST emitida a un objeto con el parámetro de consulta restore solicita la restauración temporal de un objeto archivado. Se requiere un encabezado Content-MD5 o un encabezado checksum (incluyendo x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1, o x-amz-checksum-sha256) como comprobación de integridad para la carga útil.

Se debe restaurar un objeto archivado para poder descargar o modificar el objeto. Se debe especificar el tiempo de vida del objeto, después del cual la copia temporal del objeto se suprimirá.

Para grupos con una clase de almacenamiento de transición de política de ciclo de vida de GLACIER, puede haber un retardo de hasta 12 horas antes de que la copia restaurada esté disponible para el acceso. Si la clase de almacenamiento de transición se ha establecido en ACCELERATED, puede haber un retardo de hasta dos (2) horas antes de que el objeto restaurado esté disponible. Una solicitud HEAD puede comprobar si la copia restaurada está disponible.

Para restaurar el objeto de forma permanente, se debe copiar en un grupo que no tenga una configuración de ciclo de vida activa.

Sintaxis

POST https://{endpoint}/{bucket-name}/{object-name}?restore # path style
POST https://{bucket-name}.{endpoint}/{object-name}?restore # virtual host style

Elementos de carga útil

El cuerpo de la solicitud debe contener un bloque XML con el esquema siguiente:

Elemento Tipo Hijos Predecesor Restricción
RestoreRequest Contenedor Days, GlacierJobParameters Ninguna Ninguna
Días Entero Ninguna RestoreRequest Se ha especificado el tiempo de vida del objeto restaurado temporalmente. El número mínimo de días que puede existir una copia restaurada del objeto es 1. Una vez transcurrido el periodo de restauración, se eliminará la copia temporal del objeto.
GlacierJobParameters Serie Nivel RestoreRequest Ninguna
Nivel Serie Ninguna GlacierJobParameters Opcional, y si se deja en blanco tomará como valor predeterminado el valor asociado con el nivel de almacenamiento de la política que estaba en su lugar cuando se grabó el objeto. Si este valor no se deja en blanco, debe establecerse en Bulk si la clase de almacenamiento de transición para la política de ciclo de vida del grupo se ha establecido en GLACIER, y debe establecerse en Accelerated si la clase de almacenamiento de transición se ha establecido en ACCELERATED.
Cabeceras opcionales
Cabecera Tipo Descripción
Content-MD5 Serie El hash 128 bits MD5 codificado con el algoritmo de hash de bloque ( base64 ) de la carga útil, que se utiliza como comprobación de integridad para garantizar que la carga útil no se ha alterado durante la transmisión.
x-amz-checksum-crc32 Serie Esta cabecera es la suma de comprobación de 32 bits CRC32 codificada en Base64 del objeto.
x-amz-checksum-crc32c Serie Esta cabecera es la suma de comprobación de 32 bits CRC32C codificada en Base64 del objeto.
x-amz-checksum-crc64nvme Serie Esta cabecera es la suma de comprobación de 64 bits CRC64NVME codificada en Base64 del objeto. La suma de comprobación de CRC64NVME es siempre una suma de comprobación de objeto completo.
x-amz-checksum-sha1 Serie Este encabezado es el Base64 codificado, 160-bit SHA1 digest del objeto.
x-amz-checksum-sha256 Serie Este encabezado es el Base64 codificado, 256-bit SHA256 digest del objeto.
<RestoreRequest>
    <Days>{integer}</Days>
    <GlacierJobParameters>
        <Tier>Bulk</Tier>
    </GlacierJobParameters>
</RestoreRequest>

Solicitud de ejemplo

POST /apiary/queenbee?restore HTTP/1.1
Authorization: {authorization-string}
Content-Type: text/plain
Content-MD5: rgRRGfd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud

Solicitud de ejemplo

POST /apiary/queenbee?restore HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-MD5: rgRRGfd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
<RestoreRequest>
    <Days>3</Days>
    <GlacierJobParameters>
        <Tier>Bulk</Tier>
    </GlacierJobParameters>
</RestoreRequest>

Respuesta de ejemplo

HTTP/1.1 202 Accepted
Date: Thu, 16 Mar 2017 22:07:48 GMT
X-Clv-Request-Id: 06d67542-6a3f-4616-be25-fc4dbdf242ad
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5

Actualización de metadatos

Hay dos formas de actualizar los metadatos de un objeto existente:

  • Una solicitud PUT con los nuevos metadatos y el contenido del objeto original
  • Ejecución de una solicitud COPY con los nuevos metadatos que especifican el objeto original como origen de la copia

Todos los metadatos claves deben tener el prefijo x-amz-meta-

Utilización de PUT para actualizar metadatos

La PUT solicitud requiere una copia del objeto existente, ya que el contenido se sobrescribe.

Sintaxis

PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style

Solicitud de ejemplo

PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-meta-key1: value1
x-amz-meta-key2: value2

Content-Length: 533

 The 'queen' bee is developed from larvae selected by worker bees and fed a
 substance referred to as 'royal jelly' to accelerate sexual maturity. After a
 short while the 'queen' is the mother of nearly every bee in the hive, and
 the colony will fight fiercely to protect her.

Solicitud de ejemplo

PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-meta-key1: value1
x-amz-meta-key2: value2

Content-Length: 533

 The 'queen' bee is developed from larvae selected by worker bees and fed a
 substance referred to as 'royal jelly' to accelerate sexual maturity. After a
 short while the 'queen' is the mother of nearly every bee in the hive, and
 the colony will fight fiercely to protect her.

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
Content-Length: 0

Utilización de COPY para actualizar metadatos

Los detalles completos sobre la solicitud COPY están aquí.

Sintaxis

PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style

Solicitud de ejemplo

PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-copy-source: /apiary/queen-bee
x-amz-metadata-directive: REPLACE
x-amz-meta-key1: value1
x-amz-meta-key2: value2

Solicitud de ejemplo

PUT /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-copy-source: /apiary/queen-bee
x-amz-metadata-directive: REPLACE
x-amz-meta-key1: value1
x-amz-meta-key2: value2

Respuesta de ejemplo

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
Content-Length: 0

Próximos pasos

Obtenga más información sobre las operaciones de grupo en la documentación.