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.

Componentes de la 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.

Cabeceras
Cabecera Tipo ¿Obligatorio? Descripción
ibm-service-instance-id Serie Obtiene una lista de los grupos que se han creado en esta instancia de servicio.
Parámetros de consulta
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.

Cabeceras
Cabecera Tipo ¿Obligatorio? 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.
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:

Cuerpo del esquema de solicitud
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).

Cabeceras
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

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

Parámetros de consulta opcionales
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

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.

Cabeceras opcionales
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:

Cuerpo del esquema de solicitud
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

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:

Cuerpo del esquema de solicitud
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
Cabeceras opcionales
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:

Cuerpo del esquema de solicitud
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 opcional
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.

Cabeceras opcionales
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:

Cuerpo del esquema de solicitud
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:

Cuerpo del esquema de solicitud
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
Cabeceras opcionales
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:

Cuerpo del esquema de solicitud
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:

Cuerpo del esquema de solicitud
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.

Cabeceras
Cabecera Tipo ¿Obligatorio? Descripción
MD5 Serie No MD5 hash del contenido. Si se proporciona, el hash de la solicitud debe coincidir.
Parámetros de vía de acceso
Parámetro de vía de acceso Tipo ¿Obligatorio? Descripción
bucket_name Serie 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ámetros de vía de acceso
Parámetro de vía de acceso Tipo ¿Obligatorio? Descripción
bucket_name Serie 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ámetros de vía de acceso
Parámetro de vía de acceso Tipo ¿Obligatorio? Descripción
bucket_name Serie El nombre del grupo.
policy_id Serie 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ámetros de vía de acceso
Parámetro de vía de acceso Tipo ¿Obligatorio? Descripción
bucket_name Serie El nombre del grupo.
policy_id Serie 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.