Operaciones de grupo
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 los métodos que se utilizan para interactuar con grupos (donde se almacenan los objetos).
Para obtener más información sobre los permisos y el acceso, consulte Permisos de grupo.
Nota sobre 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 tu credencial de servicio | cf4965cebe074720a4929759f57e1214 |
| {date} | La fecha con formato de la solicitud (yyyymmdd) |
20180613 |
| {region} | El código de ubicación del punto final | us-standard |
| {signature} | El hash que se crea utilizando la clave secreta, la ubicación y la fecha | ffe2b6e18f9dcc41f593f4dbb39882a6bb4d26a73a04326e62a8d344e07c1a3e |
| {timestamp} | Fecha y hora con formato de la solicitud | 20180614T001804Z |
Obtención de una lista de grupos
Una solicitud de tipo « GET » enviada a la raíz del punto final devuelve una lista de buckets asociados a la instancia del servicio especificada. Para obtener más información sobre puntos finales, consulte Puntos finales y ubicaciones de almacenamiento.
| Cabecera | Tipo | ¿Obligatorio? | Descripción |
|---|---|---|---|
ibm-service-instance-id |
Serie | Sí | Obtiene una lista de los grupos que se han creado en esta instancia de servicio. |
| Parámetro de consulta | Valor | ¿Obligatorio? | Descripción |
|---|---|---|---|
extended |
Ninguna | No | Incluye metadatos de LocationConstraint y CreationTemplateId en el anuncio. |
Sintaxis
GET https://{endpoint}/
Ejemplo de solicitud
GET / HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Ejemplo de solicitud
GET / 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
Respuesta de ejemplo
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<Buckets>
<Bucket>
<Name>bucket-27200-lwx4cfvcue</Name>
<CreationDate>2016-08-18T14:21:36.593Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-27590-drqmydpfdv</Name>
<CreationDate>2016-08-18T14:22:32.366Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-27852-290jtb0n2y</Name>
<CreationDate>2016-08-18T14:23:03.141Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-28731-k0o1gde2rm</Name>
<CreationDate>2016-08-18T14:25:09.599Z</CreationDate>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
Obtención de una lista ampliada
Sintaxis
GET https://{endpoint}/?extended
Ejemplo de solicitud
GET /?extended HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Ejemplo de solicitud
GET /?extended 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
Respuesta de ejemplo
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<IsTruncated>false</IsTruncated>
<MaxKeys>1000</MaxKeys>
<Prefix/>
<Marker/>
<Buckets>
<Bucket>
<Name>bucket-27200-lwx4cfvcue</Name>
<CreationDate>2016-08-18T14:21:36.593Z</CreationDate>
<LocationConstraint>us-south-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-27590-drqmydpfdv</Name>
<CreationDate>2016-08-18T14:22:32.366Z</CreationDate>
<LocationConstraint>us-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-27852-290jtb0n2y</Name>
<CreationDate>2016-08-18T14:23:03.141Z</CreationDate>
<LocationConstraint>eu-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-28731-k0o1gde2rm</Name>
<CreationDate>2016-08-18T14:25:09.599Z</CreationDate>
<LocationConstraint>us-cold</LocationConstraint>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
Crear un grupo
Una solicitud PUT que se envía a la raíz de punto final y seguida de una serie crea un grupo. Para obtener más información sobre puntos finales, consulte Puntos finales y ubicaciones de almacenamiento.
Los nombres de los buckets deben ser únicos a nivel global y cumplir con los requisitos del DNS. Los nombres entre 3 y 63 caracteres de longitud deben estar hechos de letras minúsculas, números, puntos (puntos) y guiones (guiones). Los nombres
de grupo deben empezar y terminar por una letra en minúsculas o por un número. Los nombres de grupo no pueden contener puntos o guiones consecutivos. No se permiten nombres de buckets que se parezcan a direcciones IP. Esta operación no utiliza
parámetros de consulta específicos de la operación.
Los nombres de grupo deben ser exclusivos porque todos los grupos de la nube pública comparten un espacio de nombres global. Este requisito permite acceder a un bucket sin necesidad de facilitar ninguna información sobre la instancia del servicio
ni sobre la cuenta. Tampoco se puede crear un grupo con un nombre que empiece por cosv1- o account-, ya que estos prefijos están reservados por el sistema.
| Cabecera | Tipo | ¿Obligatorio? | Descripción |
|---|---|---|---|
ibm-service-instance-id |
Serie | Sí | Este encabezado hace referencia a la instancia del servicio en la que se va a crear el depósito y a la que se le puede facturar el consumo de datos. |
x-amz-bucket-object-lock-enabled |
Boolean | No | Especifica si desea habilitar el bloqueo de objeto en el nuevo grupo. Esta cabecera habilita automáticamente el mantenimiento de versiones. |
Al establecer el bloqueo de objeto en un nuevo grupo, asegúrese de que no haya errores tipográficos en la cabecera x-amz-bucket-object-lock-enabled. Si la cabecera o el valor están mal escritos, se crea el grupo, pero el bloqueo
de objeto y la versión no están habilitados.
Información de identificación personal (PII): Al crear buckets o añadir objetos, no utilices en el nombre del bucket o del objeto ninguna información que permita identificar a un usuario (persona física) por su nombre, ubicación o cualquier otro medio.
Sintaxis
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
Ejemplo de solicitud
El ejemplo siguiente crea un grupo que se denomina 'images'.
PUT /images HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Ejemplo de solicitud
PUT /images 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
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:45:25 GMT
X-Clv-Request-Id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Content-Length: 0
Creación de un grupo con una clase de almacenamiento diferente
Para crear un depósito con una clase de almacenamiento diferente, envía un bloque XML que especifique una configuración de depósito con el valor « LocationConstraint » establecido en « {provisioning code} » en el cuerpo
de una solicitud « PUT » dirigida al punto final del depósito. Para obtener más información sobre puntos finales, consulte Puntos finales y ubicaciones de almacenamiento.
Se aplican reglas de denominación de grupo estándar. Esta operación no utiliza parámetros de consulta específicos de la operación.
| | Cabecera | Tipo | Descripción | |--------------------------|--------|--------------------------------------------------------------------------------------------------------------------- | ibm-service-instance-id | Serie | Este
encabezado hace referencia a la instancia del servicio en la que se va a crear el depósito y a la que se le puede facturar el consumo de datos. |
Sintaxis
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
El cuerpo de la solicitud debe contener un bloque XML con el esquema siguiente:
| Elemento | Tipo | Hijos | Predecesor | Restricción |
|---|---|---|---|---|
CreateBucketConfiguration |
Contenedor | LocationConstraint |
|
|
LocationConstraint |
Serie |
|
CreateBucketConfiguration |
Código de ubicación válido |
<CreateBucketConfiguration>
<LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>
Puede consultar la lista de códigos de suministro válidos para LocationConstraint en la guía de Storage Classes.
Ejemplo de solicitud
El ejemplo siguiente crea un grupo denominado 'vault-images'.
PUT /vault-images HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Content-Length: 110
Ejemplo de solicitud
PUT /vault-images 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
<CreateBucketConfiguration>
<LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Fri, 17 Mar 2017 17:52:17 GMT
X-Clv-Request-Id: b6483b2c-24ae-488a-884c-db1a93b9a9a6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
Content-Length: 0
Crear un bucket con claves de cifrado gestionadas (SSE-KP) de Key Protect o Hyper Protect Crypto Services
Para crear un grupo donde las claves de cifrado estén gestionadas por Key Protect o Hyper Protect Crypto Services, es necesario tener acceso a una instancia de servicio de Key Protect o Hyper Protect Crypto Services activa. Esta operación no utiliza parámetros de consulta específicos de la operación.
Para obtener más información sobre cómo utilizar Key Protect para gestionar tus claves de cifrado, consulta la documentación disponible en Key Protect.
Para obtener más información sobre Hyper Protect Crypto Services, consulte la documentación.
El cifrado gestionado para un bucket interregional debe utilizar una clave raíz de una instancia de Key Protect en la ubicación de alta disponibilidad más cercana (us-south o jp-tok).
| Cabecera | Tipo | Descripción |
|---|---|---|
ibm-service-instance-id |
Serie | Este encabezado hace referencia a la instancia del servicio en la que se va a crear el depósito y a la que se le puede facturar el consumo de datos. |
ibm-sse-kp-encryption-algorithm |
Serie | Este encabezado se utiliza para especificar el algoritmo y el tamaño de la clave que se va a utilizar con la clave de cifrado almacenada mediante « Key Protect ». Este valor se debe establecer en la serie AES256. |
ibm-sse-kp-customer-root-key-crn |
Serie | Este encabezado se utiliza para hacer referencia a la clave raíz específica que utilizan Key Protect o Hyper Protect Crypto Services para cifrar este depósito. Este valor debe ser el CRN completo de la clave raíz. |
Sintaxis
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
Ejemplo de solicitud
El ejemplo siguiente crea un grupo que se denomina 'secure-files'.
PUT /secure-files HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us-south.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net
ibm-service-instance-id: {ibm-service-instance-id}
ibm-sse-kp-encryption-algorithm: "AES256"
ibm-sse-kp-customer-root-key-crn: {customer-root-key-id}
Ejemplo de solicitud
PUT /secure-files 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
ibm-sse-kp-encryption-algorithm: "AES256"
ibm-sse-kp-customer-root-key-crn: {customer-root-key-id}
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:45:25 GMT
X-Clv-Request-Id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Content-Length: 0
Recuperación de las cabeceras de un grupo
Una llamada a « HEAD » realizada sobre un bucket devuelve los encabezados de dicho bucket.
Las solicitudes HEAD no devuelven un cuerpo y por lo tanto no pueden devolver mensajes de error específicos como, por ejemplo, NoSuchBucket, sino simplemente NotFound.
Sintaxis
HEAD https://{endpoint}/{bucket-name} # path style
HEAD https://{bucket-name}.{endpoint} # virtual host style
Ejemplo de solicitud
El ejemplo siguiente capta las cabeceras para el grupo 'images'.
HEAD /images HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}
Ejemplo de solicitud
HEAD /images 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
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:46:35 GMT
X-Clv-Request-Id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Content-Length: 0
Ejemplo de solicitud
HEAD Las solicitudes realizadas en buckets con cifrado « Key Protect » devuelven encabezados adicionales.
HEAD /secure-files HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}
Ejemplo de solicitud
HEAD /secure-files 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
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:46:35 GMT
X-Clv-Request-Id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Content-Length: 0
ibm-sse-kp-enabled: True
ibm-sse-kp-crk-id: {customer-root-key-id}
Mostrar los objetos de un bucket concreto (Versión 2)
Una solicitud de tipo « GET » dirigida a un depósito devuelve una lista de objetos, limitada a 1.000 a la vez y ordenada de forma no lexicográfica. El valor « StorageClass » que se devuelve en la respuesta es un valor
por defecto, ya que las operaciones de clase de almacenamiento no están implementadas en Object Storage. Esta operación no utiliza cabeceras o elementos de carga útil específicos de la operación.
Sintaxis
GET https://{endpoint}/{bucket-name}?list-type=2 # path style
GET https://{bucket-name}.{endpoint}?list-type=2 # virtual host style
Parámetros de consulta opcionales
| Nombre | Tipo | Descripción |
|---|---|---|
list-type |
Serie | Indica la versión 2 de la API y el valor debe ser 2. |
prefix |
Serie | Limita la respuesta a los nombres de objetos que empiezan por « prefix ». |
delimiter |
Serie | Agrupa los objetos entre prefix y delimiter. |
encoding-type |
Serie | Si se utilizan caracteres unicode que no reciben soporte de XML en el nombre de un objeto, este parámetro se puede establecer en url para codificar correctamente la respuesta. |
max-keys |
Serie | Restringe el número de objetos que se muestran en la respuesta. El valor predeterminado y máximo es 1.000. |
fetch-owner |
Serie | De forma predeterminada, la versión 2 de la API no incluye la información de Owner. Establece este parámetro en « true » si se desea que la respuesta incluya información sobre « Owner ». |
continuation-token |
Serie | Especifica el siguiente conjunto de objetos que se debe devolver cuando se trunca la respuesta (el elemento IsTruncated devuelve true).Tu respuesta inicial incluye el elemento « NextContinuationToken ». Utilice esta señal en la siguiente solicitud como valor de continuation-token. |
start-after |
Serie | Devuelve los nombres de clave después de un objeto de clave específico. Este parámetro solo es válido en tu solicitud inicial. Si se incluye un parámetro continuation-token en la solicitud, este parámetro se pasa por alto. |
Solicitud de ejemplo (simple)
Esta solicitud muestra una lista de los objetos contenidos en el grupo "apiary".
GET /apiary?list-type=2 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Solicitud de ejemplo (simple)
GET /apiary?list-type=2 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
Respuesta de ejemplo (simple)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 814
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<KeyCount>3</KeyCount>
<MaxKeys>1000</MaxKeys>
<Delimiter/>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>worker-bee</Key>
<LastModified>2016-08-25T17:46:53.288Z</LastModified>
<ETag>"d34d8aada2996fc42e6948b926513907"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>467</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Solicitud de ejemplo (parámetro max-keys)
Esta solicitud muestra una lista de los objetos contenidos en el grupo "apiary" con una clave máxima devuelta establecida en 1.
GET /apiary?list-type=2&max-keys=1 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Ejemplo de solicitud (parámetro «max-keys»)
GET /apiary?list-type=2&max-keys=1 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
Respuesta de ejemplo (respuesta truncada)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 598
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<NextContinuationToken>1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg</NextContinuationToken>
<KeyCount>1</KeyCount>
<MaxKeys>1</MaxKeys>
<Delimiter/>
<IsTruncated>true</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Solicitud de ejemplo (parámetro continuation-token)
Esta solicitud muestra una lista de los objetos contenidos en el grupo "apiary" con una señal de continuación especificada.
GET /apiary?list-type=2&max-keys=1&continuation-token=1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Solicitud de muestra (parámetro «continuation-token»)
GET /apiary?list-type=2&max-keys=1&continuation-token=1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg 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
Respuesta de ejemplo (respuesta truncada, parámetro continuation-token)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 604
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<ContinuationToken>1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg</ContinuationToken>
<NextContinuationToken>1a8j20CqowRrM4epIQ7fTBuyPZWZUeA8Epog16wYu9KhAPNoYkWQYhGURsIQbll1lP7c-OO-V5Vyzu6mogiakC4NSwlK4LyRDdHQgY-yPH4wMB76MfQR61VyxI4TJLxIWTPSZA0nmQQWcuV2mE4jiDA</NextContinuationToken>
<KeyCount>1</KeyCount>
<MaxKeys>1</MaxKeys>
<Delimiter/>
<IsTruncated>true</IsTruncated>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Enumerar objetos de un bucket específico (obsoleto)
Esta API se incluye para la compatibilidad con una versión anterior. Consulte Versión 2 para ver el método recomendado para recuperar los objetos de un grupo.
Una solicitud de tipo « GET » dirigida a un depósito devuelve una lista de objetos, limitada a 1.000 a la vez y ordenada de forma no lexicográfica. El valor « StorageClass » que se devuelve en la respuesta es un valor
por defecto, ya que las operaciones de clase de almacenamiento no están implementadas en Object Storage. Esta operación no utiliza cabeceras o elementos de carga útil específicos de la operación.
Sintaxis
GET https://{endpoint}/{bucket-name} # path style
GET https://{bucket-name}.{endpoint} # virtual host style
Parámetros de consulta opcionales para el método list object
| Nombre | Tipo | Descripción |
|---|---|---|
prefix |
Serie | Limita la respuesta a los nombres de objetos que empiezan por « prefix ». |
delimiter |
Serie | Agrupa los objetos entre prefix y delimiter. |
encoding-type |
Serie | Si se utilizan caracteres unicode que no reciben soporte de XML en el nombre de un objeto, este parámetro se puede establecer en url para codificar correctamente la respuesta. |
max-keys |
Serie | Restringe el número de objetos que se muestran en la respuesta. El valor predeterminado y máximo es 1.000. |
marker |
Serie | Especifica el objeto desde el que debe comenzar el listado, en orden binario « UTF-8 ». |
Ejemplo de solicitud
Esta solicitud muestra una lista de los objetos contenidos en el grupo "apiary".
GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Ejemplo de solicitud
GET /apiary 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
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 909
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<Marker/>
<MaxKeys>1000</MaxKeys>
<Delimiter/>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>worker-bee</Key>
<LastModified>2016-08-25T17:46:53.288Z</LastModified>
<ETag>"d34d8aada2996fc42e6948b926513907"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>467</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Supresión de un grupo
Una solicitud de tipo « DELETE » enviada a un depósito vacío elimina dicho depósito. El nombre del bucket queda reservado por el sistema durante 5 minutos después de la eliminación. Después de 5 minutos, el nombre queda libre para
volver a usarlo. Solo se pueden suprimir los grupos vacíos.
Si se suprime la instancia de servicio Object Storage, el sistema mantiene todos los nombres de grupo de dicha instancia en reserva durante 7 días. Después de 7 días, los nombres se liberan para su reutilización.
Sintaxis
DELETE https://{endpoint}/{bucket-name} # path style
DELETE https://{bucket-name}.{endpoint} # virtual host style
Cabeceras opcionales
| Nombre | Tipo | Descripción |
|---|---|---|
aspera-ak-max-tries |
Serie | Especifica el número de veces que se intenta ejecutar la operación de supresión. El valor predeterminado es 2. |
Ejemplo de solicitud
DELETE /apiary HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Ejemplo de solicitud
DELETE /apiary 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.
Si se solicita la supresión de un grupo que no está vacío, el servidor responde con 409 Conflict.
Respuesta de ejemplo
<Error>
<Code>BucketNotEmpty</Code>
<Message>The bucket you tried to delete is not empty.</Message>
<Resource>/apiary/</Resource>
<RequestId>9d2bbc00-2827-4210-b40a-8107863f4386</RequestId>
<httpStatusCode>409</httpStatusCode>
</Error>
Configurar bloqueo de objeto en un grupo existente
Una solicitud PUT dirigida a un grupo vacío con el parámetro de consulta ?object-lock establece una nueva configuración de bloqueo de objeto en un grupo.
Sintaxis
PUT https://{endpoint}/{bucket-name}?object-lock # path style
PUT https://{bucket-name}.{endpoint}?object-lock # virtual host style
La configuración de bloqueo de objeto se proporciona como XML en el cuerpo de la solicitud. Las nuevas solicitudes sobrescriben las reglas de réplica existentes que están presentes en el grupo.
Una configuración de bloqueo de objeto debe incluir una regla.
| Cabecera | Tipo | Descripción |
|---|---|---|
Content-MD5 |
Serie | El hash « MD5 » de 128 bits de la carga útil, codificado mediante el algoritmo « Base64 », que se utiliza como comprobación de integridad para garantizar que la carga útil no haya sido alterada 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. |
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.
El cuerpo de la solicitud debe contener un bloque XML con el esquema siguiente:
| Elemento | Tipo | Hijos | Predecesor | Restricción |
|---|---|---|---|---|
ObjectLockConfiguration |
Contenedor | ObjectLockEnabled, Rule |
Ninguna | Límite 1. |
ObjectLockEnabled |
Serie | Ninguna | ObjectLockConfiguration |
El único valor válido es ENABLED. |
Rule |
Contenedor | DefaultRetention |
ObjectLockConfiguration |
Límite 1 |
DefaultRetention |
Contenedor | Days, Mode, Years |
Rule |
Límite 1. |
Days |
Entero | Ninguna | DefaultRetention |
El número de días que desea especificar para el periodo de retención predeterminado. No se puede combinar con Years. |
Mode |
Serie | Ninguna | DefaultRetention |
COMPLIANCE o GOVERNANCE. |
Years |
Entero | Ninguna | DefaultRetention |
El número de años que desea especificar para el periodo de retención predeterminado. No se puede combinar con Days. |
Solicitud de ejemplo
Esta solicitud muestra una lista de los objetos contenidos en el grupo "apiary".
GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 909
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ObjectLockEnabled>ENABLED</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Days>30</Days>
<Mode>COMPLIANCE</Mode>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
Lista de cargas de varias partes canceladas o incompletas para un grupo
Un mandato GET emitido a un grupo con los parámetros adecuados recupera información sobre las cargas de varias partes canceladas o incompletas para el grupo.
Sintaxis
GET https://{endpoint}/{bucket-name}?uploads= # path style
GET https://{bucket-name}.{endpoint}?uploads= # virtual host style
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
prefix |
Serie | Limita la respuesta a los nombres de objetos que empiezan por « {prefix} ». |
delimiter |
Serie | Agrupa los objetos entre prefix y delimiter. |
encoding-type |
Serie | Si se utilizan caracteres unicode que no reciben soporte de XML en el nombre de un objeto, este parámetro se puede establecer en url para codificar correctamente la respuesta. |
max-uploads |
Entero | Restringe el número de objetos que se muestran en la respuesta. El valor predeterminado y máximo es 1.000. |
key-marker |
Serie | Especifica por dónde debe comenzar la lista. |
upload-id-marker |
Serie | Se ignora si no se especifica « key-marker »; en caso contrario, establece un punto a partir del cual comenzar a enumerar las piezas situadas por encima de « upload-id-marker ». |
Ejemplo de solicitud
El ejemplo siguiente recupera todas las cargas de varias partes canceladas e incompletas actuales.
GET /apiary?uploads= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Ejemplo de solicitud
GET /apiary?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}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
**Respuesta de ejemplo ** (no hay ninguna carga de varias partes en curso)
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:22:27 GMT
X-Clv-Request-Id: 9fa96daa-9f37-42ee-ab79-0bcda049c671
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 9fa96daa-9f37-42ee-ab79-0bcda049c671
Content-Type: application/xml
Content-Length: 374
<ListMultipartUploadsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>apiary</Bucket>
<KeyMarker/>
<UploadIdMarker/>
<NextKeyMarker>multipart-object-123</NextKeyMarker>
<NextUploadIdMarker>0000015a-df89-51d0-2790-dee1ac994053</NextUploadIdMarker>
<MaxUploads>1000</MaxUploads>
<IsTruncated>false</IsTruncated>
<Upload>
<Key>file</Key>
<UploadId>0000015a-d92a-bc4a-c312-8c1c2a0e89db</UploadId>
<Initiator>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Initiator>
<Owner>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2017-03-16T22:09:01.002Z</Initiated>
</Upload>
<Upload>
<Key>multipart-object-123</Key>
<UploadId>0000015a-df89-51d0-2790-dee1ac994053</UploadId>
<Initiator>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Initiator>
<Owner>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2017-03-18T03:50:02.960Z</Initiated>
</Upload>
</ListMultipartUploadsResult>
Obtención de la configuración de compartición de recursos entre orígenes para un grupo
Un mandato GET emitido a un grupo con los parámetros adecuados recupera información sobre la configuración de compartición de recursos entre orígenes (CORS) para el grupo.
Sintaxis
GET https://{endpoint}/{bucket-name}?cors= # path style
GET https://{bucket-name}.{endpoint}?cors= # virtual host style
Ejemplo de solicitud
En el siguiente ejemplo se muestra una configuración de CORS en el bucket «apiary».
GET /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Ejemplo de solicitud
GET /apiary?cors= 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
Ejemplo de respuesta: No hay ningún conjunto de configuración de « CORS »
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:20:30 GMT
X-Clv-Request-Id: 0b69bce1-8420-4f93-a04a-35d7542799e6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 0b69bce1-8420-4f93-a04a-35d7542799e6
Content-Type: application/xml
Content-Length: 123
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedOrigin>http://www.ibm.com</AllowedOrigin>
</CORSRule>
</CORSConfiguration>
Creación de una configuración de compartición de recursos entre orígenes para un grupo
Un mandato PUT emitido a un grupo con los parámetros adecuados crea o sustituye una configuración de compartición de recursos entre orígenes (CORS) para el grupo.
Sintaxis
PUT https://{endpoint}/{bucket-name}?cors= # path style
PUT https://{bucket-name}.{endpoint}?cors= # 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 |
|---|---|---|---|---|
CORSConfiguration |
Contenedor | CORSRule |
|
|
CORSRule |
Contenedor | AllowedOrigin, AllowedMethod |
Suprimir |
|
AllowedOrigin |
Serie |
|
CORSRule |
Serie de origen válida |
AllowedMethod |
Serie |
|
CORSRule |
Serie de método válida |
| Cabecera | Tipo | Descripción |
|---|---|---|
Content-MD5 |
Serie | El hash de 128 bits del MD5 de la carga útil, codificado mediante el algoritmo « base64 », que se utiliza como comprobación de integridad para garantizar que la carga útil no haya sido alterada 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. |
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. El siguiente fragmento muestra una forma de conseguir el contenido para la cabecera Content-MD5, que es la representación binaria de un
hash base64-encoded MD5.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Ejemplo de solicitud
En el siguiente ejemplo se añade una configuración de « CORS » que permite que las solicitudes procedentes de www.ibm.com puedan realizar solicitudes de tipo « GET », « PUT » y « POST » al
bucket.
PUT /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 237
Ejemplo de solicitud
PUT /apiary?cors= 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-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 237
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>http://www.ibm.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
</CORSRule>
</CORSConfiguration>
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Content-Length: 0
Supresión de una configuración de compartición de recursos entre orígenes para un grupo
Un mandato DELETE emitido a un grupo con los parámetros adecuados crea o sustituye una configuración de compartición de recursos entre orígenes (CORS) para el grupo.
Sintaxis
DELETE https://{endpoint}/{bucket-name}?cors= # path style
DELETE https://{bucket-name}.{endpoint}?cors= # virtual host style
Ejemplo de solicitud
En el siguiente ejemplo se elimina una configuración de « CORS » de un depósito.
DELETE /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Ejemplo de solicitud
DELETE /apiary?cors= 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.
Obtención de la restricción de ubicación para un grupo
Un mandato GET emitido a un grupo con el parámetro adecuado recupera la información de ubicación de un grupo.
Sintaxis
GET https://{endpoint}/{bucket-name}?location # path style
GET https://{bucket-name}.{endpoint}?location # virtual host style
Ejemplo de solicitud
El ejemplo siguiente recupera la ubicación del grupo "apiary".
GET /apiary?location= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Ejemplo de solicitud
GET /apiary?location= 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
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Tue, 12 Jun 2018 21:10:57 GMT
X-Clv-Request-Id: 0e469546-3e43-4c6b-b814-5ad0db5b638f
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 0e469546-3e43-4c6b-b814-5ad0db5b638f
Content-Type: application/xml
Content-Length: 161
<LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
us-south-standard
</LocationConstraint>
Creación de una configuración de ciclo de vida de un grupo
Una operación PUT utiliza el parámetro de consulta lifecycle para establecer los valores de ciclo de vida para el grupo. 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 de la carga útil.
El siguiente fragmento muestra una forma de conseguir el contenido para la cabecera Content-MD5, que es la representación binaria de un hash base64-encoded MD5.
Sintaxis
PUT https://{endpoint}/{bucket-name}?lifecycle # path style
PUT https://{bucket-name}.{endpoint}?lifecycle # 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 |
|---|---|---|---|---|
LifecycleConfiguration |
Contenedor | Rule |
Ninguna | Límite 1 |
Rule |
Contenedor | ID, Status, Filter, Transition |
LifecycleConfiguration |
Límite 1 |
ID |
Serie | Ninguna | Rule |
Debe constar de (a-z,A-Z,0-9) y los símbolos siguientes:! _ . * ' ( ) - |
Filter |
Serie | Prefix |
Rule |
Debe contener un elemento Prefix. |
Expiration |
Contenedor | Days, Date, ExpiredObjectDeleteMarker |
Rule |
Límite 1 |
Prefix |
Serie | Ninguna | Filter |
Si se utiliza una regla de transición (archivado), el valor debe establecerse en <Prefix/>. Esta limitación no se aplica a las reglas de caducidad. |
Transition |
Contenedor | Days, StorageClass |
Rule |
Limitar 1 regla de transición y 1000 reglas en total. |
Days |
Entero no negativo | Ninguna | Transition |
Debe ser un valor igual o mayor que 0. |
Date |
Fecha | Ninguna | Transition |
Debe estar en formato ISO 8601 y la fecha debe ser futura. |
StorageClass |
Serie | Ninguna | Transition |
Debe establecerse en GLACIER o ACCELERATED. |
ExpiredObjectDeleteMarker |
Boolean | Ninguna | Expiration |
Debe ser true o false. |
NoncurrentVersionExpiration |
Contenedor | NoncurrentDays |
NoncurrentVersionExpiration |
Límite 1 |
NoncurrentDays |
entero positivo | Ninguna | Transition |
Debe ser un valor mayor que 0. |
AbortIncompleteMultipartUpload |
Contenedor | DaysAfterInitiation |
Rule |
Límite 1 |
DaysAfterInitiation |
Entero no negativo | Ninguna | AbortIncompleteMultipartUpload |
Debe ser un valor mayor que 0. |
| Cabecera | Tipo | Descripción |
|---|---|---|
Content-MD5 |
Serie | El hash de 128 bits del MD5 de la carga útil, codificado mediante el algoritmo « base64 », que se utiliza como comprobación de integridad para garantizar que la carga útil no haya sido alterada 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. |
IBM Cloud® Object Storage IaaS Las cuentas (no IAM) no pueden establecer la clase de almacenamiento de transición en ACCELERATED.
<LifecycleConfiguration>
<Rule>
<ID>{string}</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Transition>
<Days>{integer}</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
El siguiente fragmento de código muestra una forma de conseguir el contenido para esa cabecera en particular.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Ejemplo de solicitud
PUT /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
Ejemplo de solicitud
PUT /apiary?lifecycle 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
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
<LifecycleConfiguration>
<Rule>
<ID>my-archive-policy</ID>
<Filter>
<Prefix/>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>20</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
El servidor responde con 200 OK.
<LifecycleConfiguration>
<Rule>
<ID>{string}</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>{integer}</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
El siguiente fragmento de código muestra una forma de conseguir el contenido para esa cabecera en particular.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Ejemplo de solicitud
PUT /cit-test?lifecycle HTTP/1.1
Host: 192.168.35.22
Date: Fri, 28 Feb 2020 14:12:06 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:WrlFRE2KMmhutBf3CxIZoNLl/ko=
Content-MD5: To3JYtaVNR3+aGYtl1dlmw==
Content-Length: 321
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>ID1</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>100</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Ejemplo de respuesta El servidor responde con « 200 OK ».
We are completely uploaded and fine
HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 14:12:06 GMT
X-Clv-Request-Id: 587d909f-4939-41ef-8c16-80aea16a0587
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
x-amz-request-id: 587d909f-4939-41ef-8c16-80aea16a0587
Content-Length: 0
Ejemplo de solicitud
PUT /{bucket-name}?lifecycle HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Content-Length: 123
Ejemplo de solicitud
PUT /{bucket-name}?lifecycle 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: 123
Recuperación de una configuración de ciclo de vida de un grupo
Una operación GET utiliza el parámetro de consulta lifecycle para recuperar los valores de ciclo de vida para el grupo.
Sintaxis
GET https://{endpoint}/{bucket-name}?lifecycle # path style
GET https://{bucket-name}.{endpoint}?lifecycle # virtual host style
Ejemplo de solicitud
GET /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}
Ejemplo de solicitud
GET /apiary?lifecycle 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
Respuesta de ejemplo
<LifecycleConfiguration>
<Rule>
<ID>my-archive-policy</ID>
<Filter>
<Prefix/>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>20</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
Ejemplo de solicitud
GET /cit_dump-log?lifecycle HTTP/1.1
Host: 192.168.35.22
User-Agent: curl/7.64.1
Accept: */*
Date: Fri, 28 Feb 2020 14:00:43 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:iKm2QNetyW740kylP6ja2pze3DM=
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 14:00:43 GMT
X-Clv-Request-Id: ecbf9294-284d-4169-b2cd-5d52b2450808
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
x-amz-request-id: ecbf9294-284d-4169-b2cd-5d52b2450808
Content-Type: application/xml
Content-Length: 276
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>ID1</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>270</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Supresión de datos obsoletos con reglas de caducidad
Cualquier acción de caducidad para objetos sujetos a la política de retención «Inmutable Object Storage » (Inmutable: no se eliminará nunca) de un bucket se aplaza hasta que la política de retención deje de aplicarse.
Para obtener más información sobre cómo utilizar la configuración del ciclo de vida para suprimir objetos, consulte la documentación.
Esta implementación de la operación PUT utiliza el parámetro de consulta lifecycle para definir valores de ciclo de vida para el grupo. Esta operación permite una sola definición de política de ciclo de vida para un
grupo. La política se define como un conjunto de reglas que consta de los siguientes parámetros: ID, Status, Filter y Expiration.
| Cabecera | Tipo | Descripción |
|---|---|---|
Content-MD5 |
Serie | El hash « MD5 » de 128 bits de la carga útil, codificado mediante el algoritmo « Base64 », que se utiliza como comprobación de integridad para garantizar que la carga útil no haya sido alterada 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. |
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.
El siguiente fragmento muestra una forma de conseguir el contenido para la cabecera Content-MD5, que es la representación binaria de un hash base64-encoded MD5.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
El cuerpo de la solicitud debe contener un bloque XML con el esquema siguiente:
| Elemento | Tipo | Hijos | Predecesor | Restricción |
|---|---|---|---|---|
LifecycleConfiguration |
Contenedor | Rule |
Ninguna | Límite 1. |
Rule |
Contenedor | ID, Status, Filter, Expiration |
LifecycleConfiguration |
Límite 1000. |
ID |
Serie | Ninguna | Rule |
Debe constar de (a-z,A-Z,0-9) y los símbolos siguientes: ! _ . * ' ( ) - |
Filter |
Serie | Prefix |
Rule |
Debe contener un elemento Prefix |
Prefix |
Serie | Ninguna | Filter |
La regla se aplica a cualquier objeto con claves que coincidan con este prefijo. |
Expiration |
Contenedor | Days o Date |
Rule |
Límite 1. |
Days |
Entero no negativo | Ninguna | Expiration |
Debe ser un valor mayor que 0. |
Date |
Fecha | Ninguna | Expiration |
Debe estar en formato ISO 8601. |
Sintaxis
PUT https://{endpoint}/{bucket}?lifecycle # path style
PUT https://{bucket}.{endpoint}?lifecycle # virtual host style
Ejemplo de solicitud
PUT /images?lifecycle HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Date: Wed, 7 Feb 2018 17:50:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
<LifecycleConfiguration>
<Rule>
<ID>id1</ID>
<Filter />
<Status>Enabled</Status>
<Expiration>
<Days>60</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Supresión de la configuración de ciclo de vida de un grupo
Un mandato DELETE emitido a un grupo con los parámetros adecuados elimina cualquier configuración de ciclo de vida para un grupo.
Sintaxis
DELETE https://{endpoint}/{bucket-name}?lifecycle # path style
DELETE https://{bucket-name}.{endpoint}?lifecycle # virtual host style
Ejemplo de solicitud
DELETE /apiary?lifecycle HTTP/1.1
Authorization: {authorization-string}
Host: s3.us.cloud-object-storage.appdomain.cloud
Ejemplo de solicitud
DELETE /apiary?lifecycle 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.
Ejemplo de solicitud
DELETE /cit-test?lifecycle HTTP/1.1
Host: 192.168.35.22
User-Agent: curl/7.64.1
Accept: */*
Date: Fri, 28 Feb 2020 14:16:47 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:n25GU28DiBgkNVgET5hKmLmp938=
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
Respuesta de ejemplo
HTTP/1.1 204 No Content
Date: Fri, 28 Feb 2020 14:16:47 GMT
X-Clv-Request-Id: 3e8bdf1e-b611-4b83-a404-e7d3e58e60b0
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
x-amz-request-id: 3e8bdf1e-b611-4b83-a404-e7d3e58e60b0
El servidor responde con 204 No Content.
Adición de una política de retención en un grupo existente
Immutable Object Storage solo está disponible en determinadas regiones. Consulte Servicios integrados para obtener más información. El servicio también requiere un plan de tarifas «Standard». Consulte el tema sobre precios para obtener detalles.
Obtenga más información sobre Object Storage inmutable en la documentación.
Los valores mínimos y máximos admitidos para los parámetros de periodo de retención MinimumRetention, DefaultRetention y MaximumRetention son un mínimo de 0 días y un máximo de 365 243 días (1 000 años).
Esta operación no utiliza parámetros de consulta adicionales. La cabecera Content-MD5 o la cabecera checksum (incluyendo x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme,
x-amz-checksum-sha1, o x-amz-checksum-sha256) es necesaria como comprobación de integridad de la carga útil. El siguiente fragmento muestra una forma de conseguir el contenido para la cabecera Content-MD5,
que es la representación binaria de un hash base64-encoded MD5.
Las políticas se aplican hasta el final de un periodo de retención y no se pueden modificar hasta que el periodo de retención haya caducado. Aunque IBM Cloud® Object Storage utiliza la API S3 para la mayoría de las operaciones, las API que se utilizan para configurar las políticas de retención no son las mismas que las de la API S3, aunque pueden compartir cierta terminología. Lea atentamente esta documentación para evitar que cualquier usuario de su organización cree objetos que no puedan eliminarse, ni siquiera por parte de los administradores de IBM Cloud.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Sintaxis
PUT https://{endpoint}/{bucket-name}?protection= # path style
PUT https://{bucket-name}.{endpoint}?protection= # virtual host style
El cuerpo de la solicitud debe contener un bloque XML con el esquema siguiente:
| Elemento | Tipo | Hijos | Predecesor | Restricción |
|---|---|---|---|---|
ProtectionConfiguration |
Contenedor | Status, MinimumRetention, MaximumRetention, DefaultRetention |
|
|
Status |
Serie |
|
ProtectionConfiguration |
Serie de estado válida |
MinimumRetention |
Contenedor | Days |
ProtectionConfiguration |
|
MaximumRetention |
Contenedor | Days |
ProtectionConfiguration |
|
DefaultRetention |
Contenedor | Days |
ProtectionConfiguration |
|
Days |
Entero |
|
MinimumRetention, MaximumRetention, DefaultRetention |
Entero de retención válido |
| Cabecera | Tipo | Descripción |
|---|---|---|
Content-MD5 |
Serie | El hash de 128 bits del MD5 de la carga útil, codificado mediante el algoritmo « base64 », que se utiliza como comprobación de integridad para garantizar que la carga útil no haya sido alterada 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. |
Ejemplo de solicitud
PUT /example-bucket?protection= HTTP/1.1
Authorization: {authorization-string}
x-amz-date: 20181011T190354Z
x-amz-content-sha256: 2938f51643d63c864fdbea618fe71b13579570a86f39da2837c922bae68d72df
Content-MD5: GQmpTNpruOyK6YrxHnpj7g==
Content-Type: text/plain
Host: 67.228.254.193
Content-Length: 299
<ProtectionConfiguration>
<Status>Retention</Status>
<MinimumRetention>
<Days>100</Days>
</MinimumRetention>
<MaximumRetention>
<Days>10000</Days>
</MaximumRetention>
<DefaultRetention>
<Days>2555</Days>
</DefaultRetention>
</ProtectionConfiguration>
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2018 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Server: Cleversafe/3.14.1
X-Clv-S3-Version: 2.5
x-amz-request-id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Content-Length: 0
Configurar un bucket para el alojamiento de una página web estática
Una orden « PUT » emitida para un bucket con los parámetros adecuados crea o sustituye la configuración de un sitio web estático para dicho bucket.
Sintaxis
PUT https://{endpoint}/{bucket-name}?website # path style
PUT https://{bucket-name}.{endpoint}?website # 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 |
|---|---|---|---|---|
WebsiteConfiguration |
Contenedor | ErrorDocument, IndexDocument, RedirectAllRequestsTo, RoutingRule |
|
Obligatorio |
ErrorDocument |
Contenedor | Key |
WebsiteConfiguration |
|
Key |
Serie |
|
ErrorDocument |
|
IndexDocument |
Contenedor | Suffix |
WebsiteConfiguration |
|
Suffix |
Serie |
|
IndexDocument |
|
RedirectAllRequestsTo |
Contenedor | HostName, Protocol |
WebsiteConfiguration |
Si se proporciona, debe ser el único elemento especificado |
HostName |
Serie |
|
RedirectAllRequestsTo |
|
Protocol |
Serie |
|
RedirectAllRequestsTo |
|
RoutingRules |
Contenedor | RoutingRule |
WebsiteConfiguration |
|
RoutingRule |
Contenedor | Condition, Redirect |
RoutingRules |
|
Condition |
Contenedor | HttpErrorCodeReturnedEquals, KeyPrefixEquals |
RoutingRule |
|
HttpErrorCodeReturnedEquals |
Serie |
|
Condition |
|
KeyPrefixEquals |
Serie |
|
Condition |
|
Redirect |
Contenedor | HostName, HttpRedirectCode, Protocol, ReplaceKeyPrefixWith, ReplaceKeyWith |
RoutingRule |
|
HostName |
Serie |
|
Redirect |
|
HttpRedirectCode |
Serie |
|
Redirect |
|
Protocol |
Serie |
|
Redirect |
|
ReplaceKeyPrefixWith |
Serie |
|
Redirect |
|
ReplaceKeyWith |
Serie |
|
Redirect |
|
Solicitud de ejemplo
El ejemplo siguiente añade una configuración de sitio web que sirve a un sitio web básico que busca un archivo index.html en cada prefijo. Por ejemplo, una solicitud que se realiza a /apiary/images/ sirve el contenido
en /apiary/images/index.html sin necesidad de especificar el archivo real.
PUT /apiary?website HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
PUT /apiary?website 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: 119
<WebsiteConfiguration>
<IndexDocument>
<Suffix>index.html</Suffix>
</IndexDocument>
</WebsiteConfiguration>
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
Suprimir cualquier configuración de sitio web para un grupo
Una solicitud DELETE que se emite a un grupo con los parámetros adecuados elimina la configuración del sitio web para un grupo.
Sintaxis
DELETE https://{endpoint}/{bucket-name}?website # path style
DELETE https://{bucket-name}.{endpoint}?website # virtual host style
Ejemplo de solicitud
El ejemplo siguiente suprime una configuración de sitio web para un grupo.
DELETE /apiary?website HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Ejemplo de solicitud
DELETE /apiary?website 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.
Bloquear ACL públicas en un grupo
Una solicitud PUT que se emite a un grupo con los parámetros adecuados impide añadir ACL de acceso público a un grupo. Se puede establecer para que fallen las nuevas solicitudes de ACL o para ignorarlas. BlockPublicAcls no afecta a las ACL existentes, pero IgnorePublicAcls ignora las ACL existentes. Esta operación no afecta a las políticas de acceso público de IAM.
Sintaxis
PUT https://{endpoint}/{bucket-name}?publicAccessBlock # path style
PUT https://{bucket-name}.{endpoint}?publicAccessBlock # 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 |
|---|---|---|---|---|
| PublicAccessBlockConfiguration | Contenedor | BlockPublicAcls, IgnorePublicAcls |
|
Obligatorio |
| BlockPublicAcls | Boolean |
|
PublicAccessBlockConfiguration |
|
| IgnorePublicAcls | Boolean |
|
PublicAccessBlockConfiguration |
|
Solicitud de ejemplo
PUT /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 155
PUT /apiary?publicAccessBlock 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
Content-Length: 155
<PublicAccessBlockConfiguration>
<BlockPublicAcls>True</BlockPublicAcls>
<IgnorePublicAcls>True</IgnorePublicAcls>
</PublicAccessBlockConfiguration>
Respuesta de ejemplo
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0
Comprobar un bloque ACL público para un grupo
Un GET emitido a un grupo con los parámetros adecuados devuelve la configuración de bloque de ACL para un grupo.
Sintaxis
GET https://{endpoint}/{bucket-name}?publicAccessBlock # path style
GET https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style
Ejemplo de solicitud
El ejemplo siguiente lee un bloque de acceso público para un grupo.
GET /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Ejemplo de solicitud
GET /apiary?publicAccessBlock 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
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020 19:52:56 GMT
X-Clv-Request-Id: 7c9079b1-2833-4abc-ba10-466ef06725b2
Server: Cleversafe/3.15.2.31
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
Content-Type: application/xml
Content-Length: 248
<PublicAccessBlockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<BlockPublicAcls>true</BlockPublicAcls>
<IgnorePublicAcls>true</IgnorePublicAcls>
</PublicAccessBlockConfiguration>
Suprimir un bloque de ACL público de un grupo
Un DELETE emitido a un grupo con los parámetros adecuados elimina el bloque ACL público de un grupo.
Sintaxis
DELETE https://{endpoint}/{bucket-name}?publicAccessBlock # path style
DELETE https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style
Ejemplo de solicitud
El ejemplo siguiente suprime un bloque ACL para un grupo.
DELETE /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Ejemplo de solicitud
DELETE /apiary?publicAccessBlock 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.
Operaciones de la política de copias de seguridad
La API de políticas de copia de seguridad de IBM Cloud® Object Storage proporciona operaciones para crear, gestionar e interactuar con políticas de copia de seguridad. Las políticas de copia de seguridad definen cómo se realiza la copia de seguridad de los datos de los buckets en los almacenes de copia de seguridad.
Para obtener más información sobre permisos y acceso, consulte Permisos de la política de copia de seguridad.
Crear una política de copia de seguridad
Una solicitud POST al endpoint /buckets/{bucket}/backup_policies crea una nueva política de copia de seguridad para un bucket.
| Cabecera | Tipo | ¿Obligatorio? | Descripción |
|---|---|---|---|
MD5 |
Serie | No | MD5 hash del contenido. Si se proporciona, el hash de la solicitud debe coincidir. |
| Parámetro de vía de acceso | Tipo | ¿Obligatorio? | Descripción |
|---|---|---|---|
bucket_name |
Serie | Sí | Nombre del cubo al que se aplica la política de copia de seguridad. |
Sintaxis
POST https://{endpoint}/buckets/{bucket}/backup_policies
Cuerpo de la solicitud
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}
Solicitud de ejemplo
POST /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
{
"initial_retention": {
"delete_after_days": 10
},
"policy_name": "myBackupPolicy",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:2de9d5b5:12b951c9-d4e1-61a4-518c-3acc2034ba30:backup-vault:l4pi16n8rt--ufqb7.r-fw2ziy",
"backup_type": "continuous"
}
Respuesta de ejemplo
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "pending",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}
Lista de políticas de copia de seguridad
Una solicitud GET al punto final /buckets/{bucket}/backup_policies recupera todas las políticas de copia de seguridad de un bucket.
| Parámetro de vía de acceso | Tipo | ¿Obligatorio? | Descripción |
|---|---|---|---|
bucket_name |
Serie | Sí | El nombre del bucket para el que listar las políticas de copia de seguridad. |
Sintaxis
GET https://{endpoint}/buckets/{bucket}/backup_policies
Solicitud de ejemplo
GET /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
Respuesta de ejemplo
[
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "active",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:8dfbcba4e6a740e3866020847e525436:backup-vault:backup-vault-name"
}
]
Obtener detalles de la política de copias de seguridad
Una solicitud GET al punto final /buckets/{bucket}/backup_policies/{policy_id} recupera detalles sobre una política de copia de seguridad específica.
| Parámetro de vía de acceso | Tipo | ¿Obligatorio? | Descripción |
|---|---|---|---|
bucket_name |
Serie | Sí | El nombre del grupo. |
policy_id |
Serie | Sí | El identificador de la política de copias de seguridad. |
Sintaxis
GET https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}
Solicitud de ejemplo
GET /buckets/myBucket/backup_policies/44d3dd41-d616-4d25-911a-9ef7fbf28aef HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
Respuesta de ejemplo
{
"policy_name": "myBackupPolicy",
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "active",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name",
"initial_retention": {
"delete_after_days": 10
}
}
Eliminar una política de copia de seguridad
Una solicitud DELETE al punto final /buckets/{bucket}/backup_policies/{policy_id} elimina una política de copia de seguridad específica.
| Parámetro de vía de acceso | Tipo | ¿Obligatorio? | Descripción |
|---|---|---|---|
bucket_name |
Serie | Sí | El nombre del grupo. |
policy_id |
Serie | Sí | El identificador de la política de copias de seguridad. |
Sintaxis
DELETE https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}
Solicitud de ejemplo
DELETE /buckets/myBucket/backup_policies/44d3dd41-d616-4d25-911a-9ef7fbf28aef HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
Respuesta de ejemplo
HTTP/1.1 204 No Content
Para obtener más información sobre las operaciones de la política de copia de seguridad, consulte Gestión de almacenes de copia de seguridad.
Próximos pasos
Para obtener más información, consulte Operaciones de objeto.