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.
| 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
| 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
| 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
| 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 | 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:
| 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:
| 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
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:
- La carga se inicia y se crea un
UploadId. - Las partes individuales se cargan especificando sus números de pieza secuenciales y el
UploadIdcorrespondiente al objeto. - Cuando todas las partes se han terminado de cargar, la carga se completa enviando una solicitud con el
UploadIdy un bloque XML que enumera cada número de pieza y su respectivo valor deEtag.
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
| 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
| 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á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 | 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:
| 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. |
| 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
PUTcon los nuevos metadatos y el contenido del objeto original - Ejecución de una solicitud
COPYcon 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.