Opérations sur les compartiments

Les fonctionnalités modernes d' IBM Cloud® Object Storage sont facilement accessibles via une API RESTful. Les opérations et les méthodes utilisées pour interagir avec les compartiments (où les objets sont stockés) sont documentées ici.

Pour plus d'informations sur les droits et l'accès, voir Bucket permissions.

Remarque sur l'authentification par clé d'accès/clé secrète (HMAC)

Lors de l'authentification auprès de votre instance de IBM Cloud® Object Storage en utilisant les données d'identification HMAC, vous avez besoin des informations représentées dans le tableau 1 lors de la construction d'une signature HMAC.

Composants de la signature HMAC
Clé Valeur Exemple
{access_key} Clé d'accès attribuée à vos identifiants de service cf4965cebe074720a4929759f57e1214
{date} Date formatée de votre demande (yyyymmdd) 20180613
{region} Code d'emplacement de votre noeud final us-standard
{signature} Hachage créé à l'aide de la clé secrète, de l'emplacement et de la date ffe2b6e18f9dcc41f593f4dbb39882a6bb4d26a73a04326e62a8d344e07c1a3e
{timestamp} Date et heure formatées de votre demande 20180614T001804Z

Création d'une liste de compartiments

Une requête de type « GET » envoyée à la racine du point de terminaison renvoie une liste des compartiments associés à l'instance de service spécifiée. Pour plus d'informations sur les noeuds finaux, voir Noeuds finaux et emplacements de stockage.

En-têtes
En-tête Type Obligatoire ? Description
ibm-service-instance-id Chaîne Oui Permet de répertorier les compartiments qui ont été créés dans cette instance de service.
Paramètres de requête
Paramètre de requête Valeur Obligatoire ? Description
extended Aucun Non Fournit les métadonnées LocationConstraint et CreationTemplateId dans la fiche.

Syntaxe

GET https://{endpoint}/

Exemple de requête

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}

Exemple de requête

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

Exemple de réponse

<?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>

Obtention d'une liste étendue

Syntaxe

GET https://{endpoint}/?extended

Exemple de requête

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}

Exemple de requête

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

Exemple de réponse

<?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>

Créer un compartiment

Une demande PUT envoyée à la racine de noeud final et suivie d'une chaîne crée un compartiment. Pour plus d'informations sur les noeuds finaux, voir Noeuds finaux et emplacements de stockage. Les noms de compartiments doivent être uniques au niveau mondial et conformes aux normes DNS. Les noms comportant entre 3 et 63 caractères doivent être composés de lettres minuscules, de chiffres, de points (points) et de tirets (traits d'union). Les noms de compartiment doivent commencer et se terminer par une lettre minuscule ou un chiffre. Les noms de compartiment ne peuvent pas contenir de points ou de tirets consécutifs. Les noms de compartiments qui ressemblent à des adresses IP ne sont pas autorisés. Cette opération n'utilise pas de paramètres de requête spécifiques à l'opération.

Les noms de compartiment doivent être uniques car tous les compartiments du cloud public partagent un espace de nom global. Cette exigence permet d'accéder à un compartiment sans avoir à fournir d'informations relatives à une instance de service ou à un compte. En outre, il n'est pas possible de créer un compartiment dont le nom commence par cosv1- ou account- car ces préfixes sont réservés par le système.

En-têtes
En-tête Type Obligatoire ? Description
ibm-service-instance-id Chaîne Oui Cet en-tête fait référence à l'instance de service sur laquelle le compartiment doit être créé et à laquelle l'utilisation des données peut être facturée.
x-amz-bucket-object-lock-enabled Booléen Non Indique si vous souhaitez activer le verrouillage d'objet sur le nouveau compartiment. Cet en-tête active automatiquement la gestion des versions.

Lorsque vous définissez le verrouillage d'objet sur un nouveau compartiment, assurez-vous qu'aucune erreur typographique ne se trouve dans l'en-tête x-amz-bucket-object-lock-enabled. Si l'en-tête ou la valeur est mal orthographiée, le compartiment est créé, mais le verrouillage d'objet et la gestion des versions ne sont pas activés.

Informations personnelles identifiables (PII): lors de la création de compartiments ou de l'ajout d'objets, n'utilisez aucune information permettant d'identifier un utilisateur (personne physique) par son nom, son lieu de résidence ou tout autre moyen dans le nom du compartiment ou de l'objet.

Syntaxe

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

Exemple de requête

L'exemple suivant crée un compartiment appelé'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}

Exemple de requête

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

Exemple de réponse

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

Création d'un compartiment avec une classe de stockage différente

Pour créer un compartiment avec une classe de stockage différente, envoyez un bloc XML spécifiant une configuration de compartiment avec l' LocationConstraint e {provisioning code} dans le corps d'une requête PUT adressée à un point de terminaison de compartiment. Pour plus d'informations sur les noeuds finaux, voir Noeuds finaux et emplacements de stockage. Les règles de dénomination de compartiment standard s'appliquent. Cette opération n'utilise pas de paramètres de requête spécifiques à l'opération.

| | En-tête | Type | Description | |--------------------------|--------|--------------------------------------------------------------------------------------------------------------------- | ibm-service-instance-id | Chaîne | Cet en-tête fait référence à l'instance de service sur laquelle le compartiment doit être créé et à laquelle l'utilisation des données peut être facturée. |

Syntaxe

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

Le corps de la demande doit contenir un bloc XML avec le schéma suivant :

Corps du schéma de la demande
Elément Type Enfants Ancêtre Contrainte
CreateBucketConfiguration Conteneur LocationConstraint
LocationConstraint Chaîne
CreateBucketConfiguration Code d'emplacement valide
<CreateBucketConfiguration>
  <LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>

Une liste de codes de mise à disposition valides pour LocationConstraint peut être référencée dans le guide sur les classes de stockage.

Exemple de requête

L'exemple suivant crée un compartiment appelé'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

Exemple de requête

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>

Exemple de réponse

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

Créer un compartiment à l'aide de clés de chiffrement gérées par Key Protect ou Hyper Protect Crypto Services (SSE-KP)

Pour créer un compartiment dans lequel les clés de chiffrement sont gérées par Key Protect ou Hyper Protect Crypto Services, il est nécessaire d'avoir accès à une instance de service Key Protect ou Hyper Protect Crypto Services active. Cette opération n'utilise pas de paramètres de requête spécifiques à l'opération.

Pour plus d'informations sur l'utilisation d' Key Protect pour gérer vos clés de chiffrement, consultez la documentation disponible à l'adresse Key Protect.

Pour plus d'informations sur Hyper Protect Crypto Services, voir la documentation.

Le chiffrement géré pour un compartiment interrégional doit utiliser une clé racine provenant d'une instance Key Protect située dans l 'emplacement haute disponibilité le plus proche (us-south ou jp-tok).

En-têtes
En-tête Type Description
ibm-service-instance-id Chaîne Cet en-tête fait référence à l'instance de service sur laquelle le compartiment doit être créé et à laquelle l'utilisation des données peut être facturée.
ibm-sse-kp-encryption-algorithm Chaîne Cet en-tête sert à spécifier l'algorithme et la taille de la clé à utiliser avec la clé de chiffrement stockée via Key Protect. La chaîne AES256 doit être affectée à cette valeur.
ibm-sse-kp-customer-root-key-crn Chaîne Cet en-tête sert à référencer la clé racine spécifique utilisée par Key Protect ou Hyper Protect Crypto Services pour chiffrer ce compartiment. Cette valeur doit correspondre au CRN complet de la clé racine.

Syntaxe

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

Exemple de requête

L'exemple suivant crée un compartiment appelé'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}

Exemple de requête

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}

Exemple de réponse

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

Extraction des en-têtes d'un compartiment

Une requête « HEAD » effectuée sur un compartiment renvoie les en-têtes de ce compartiment.

Les demandes HEAD ne renvoient pas de corps, par conséquent, elles ne peuvent pas renvoyer de messages d'erreur spécifiques, tels que NoSuchBucket, mais uniquement NotFound.

Syntaxe

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

Exemple de requête

L'exemple suivant extrait les en-têtes du compartiment'images'.

HEAD /images HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}

Exemple de requête

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

Exemple de réponse

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

Exemple de requête

HEAD Les requêtes adressées à des compartiments utilisant le chiffrement « Key Protect » renvoient des en-têtes supplémentaires.

HEAD /secure-files HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}

Exemple de requête

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

Exemple de réponse

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}

Répertorier les objets d'un compartiment spécifique (version 2)

Une requête de type « GET » adressée à un compartiment renvoie une liste d'objets, limitée à 1 000 à la fois et classée dans un ordre non lexical. La valeur « StorageClass » renvoyée dans la réponse est une valeur par défaut, car les opérations liées à la classe de stockage ne sont pas implémentées dans Object Storage. Cette opération n'utilise pas d'en-têtes ou d'éléments de contenu spécifiques à l'opération.

Syntaxe

GET https://{endpoint}/{bucket-name}?list-type=2 # path style
GET https://{bucket-name}.{endpoint}?list-type=2 # virtual host style

Paramètres de requête facultatifs

Paramètres de requête facultatifs
Nom Type Description
list-type Chaîne Indique la version 2 de l'API et la valeur doit être 2.
prefix Chaîne Limite la réponse aux noms d'objets commençant par « prefix ».
delimiter Chaîne Regroupe les objets entre prefix et delimiter.
encoding-type Chaîne Si des caractères Unicode qui ne sont pas pris en charge par XML sont utilisés dans un nom d'objet, ce paramètre peut avoir pour valeur url afin de coder correctement la réponse.
max-keys Chaîne Limite le nombre d'objets à afficher dans la réponse. La valeur par défaut et maximale est 1000.
fetch-owner Chaîne La version 2 de l'API n'inclut pas les informations Owner par défaut. Définissez ce paramètre sur « true » si vous souhaitez que la réponse contienne des informations de type « Owner ».
continuation-token Chaîne Indique l'ensemble suivant d'objets à renvoyer lorsque votre réponse est tronquée (l'élémentIsTruncated renvoie true).
Votre réponse initiale contient l'élément « NextContinuationToken ». Utilisez ce jeton dans la demande suivante comme valeur pour continuation-token.
start-after Chaîne Renvoie les noms de clé après un objet de clé spécifique.
Ce paramètre n'est valable que dans votre requête initiale. Si un paramètre continuation-token est inclus dans votre demande, ce paramètre est ignoré.

Exemple de demande (simple)

Cette demande répertorie les objets contenus dans le compartiment "apiary" :

GET /apiary?list-type=2 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}

Exemple de demande (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

Exemple de réponse (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>

Exemple de demande (paramètre max-keys)

Cette demande répertorie les objets contenus dans le compartiment "apiary" avec un nombre maximal de clés renvoyées fixé à 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}

Exemple de requête (paramètre « 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

Exemple de réponse (réponse tronquée)

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>

Exemple de demande (paramètre continuation-token)

Cette demande répertorie les objets contenus dans le compartiment "apiary" avec un jeton de continuation spécifié :

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}

Exemple de requête (paramètre « 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

Exemple de réponse (réponse tronquée, paramètre 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>

Répertorier les objets d'un compartiment spécifique (fonctionnalité obsolète)

Cette API est incluse à des fins de compatibilité avec une version antérieure. Pour connaître la méthode recommandée pour l'extraction des objets contenus dans un compartiment, voir Version 2.

Une requête de type « GET » adressée à un compartiment renvoie une liste d'objets, limitée à 1 000 à la fois et classée dans un ordre non lexical. La valeur « StorageClass » renvoyée dans la réponse est une valeur par défaut, car les opérations liées à la classe de stockage ne sont pas implémentées dans Object Storage. Cette opération n'utilise pas d'en-têtes ou d'éléments de contenu spécifiques à l'opération.

Syntaxe

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

Paramètres de requête facultatifs pour la méthode d'objet de liste

Paramètres de requête facultatifs
Nom Type Description
prefix Chaîne Limite la réponse aux noms d'objets commençant par « prefix ».
delimiter Chaîne Regroupe les objets entre prefix et delimiter.
encoding-type Chaîne Si des caractères Unicode qui ne sont pas pris en charge par XML sont utilisés dans un nom d'objet, ce paramètre peut avoir pour valeur url afin de coder correctement la réponse.
max-keys Chaîne Limite le nombre d'objets à afficher dans la réponse. La valeur par défaut et maximale est 1000.
marker Chaîne Spécifie l'objet à partir duquel le listage doit commencer, selon l'ordre binaire d' UTF-8.

Exemple de requête

Cette demande répertorie les objets contenus dans le compartiment "apiary" :

GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}

Exemple de requête

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

Exemple de réponse

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>

Suppression d'un compartiment

Une requête « DELETE » envoyée à un compartiment vide entraîne la suppression de ce dernier. Le nom du compartiment est conservé en réserve par le système pendant 5 minutes après la suppression. Au bout de 5 minutes, le nom est libéré et peut être réutilisé. Seuls les compartiments vides peuvent être supprimés.

Si l'instance de service Object Storage est supprimée, tous les noms de compartiment de cette instance sont conservés en réserve par le système pendant 7 jours. Au bout de 7 jours, les noms sont libérés pour être réutilisés.

Syntaxe

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

En-têtes facultatifs

En-têtes facultatifs
Nom Type Description
aspera-ak-max-tries Chaîne Indique le nombre de tentatives de suppression. La valeur par
défaut est 2.

Exemple de requête

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

Exemple de requête

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

Le serveur émet la réponse 204 No Content.

Si la demande de suppression porte sur un compartiment non vide, le serveur émet la réponse 409 Conflict.

Exemple de réponse

<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>

Configurer le verrouillage d'objet sur un compartiment existant

Une demande PUT adressée à un compartiment vide avec le paramètre de requête ?object-lock définit une nouvelle configuration de verrouillage d'objet sur un compartiment.

Syntaxe

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

La configuration du verrouillage d'objet est fournie au format XML dans le corps de la demande. Les nouvelles demandes remplacent les règles de réplication existantes présentes dans le compartiment.

Une configuration de verrouillage d'objet doit inclure une règle.

En-têtes facultatifs
En-tête Type Description
Content-MD5 Chaîne L' Base64, qui contient le hachage de la charge utile calculé selon l'algorithme « MD5 » sur 128 bits, sert de contrôle d'intégrité afin de garantir que la charge utile n'a pas été altérée pendant le transfert.
x-amz-checksum-crc32 Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 32 bits CRC32 de l'objet.
x-amz-checksum-crc32c Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 32 bits CRC32C de l'objet.
x-amz-checksum-crc64nvme Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 64 bits CRC64NVME de l'objet. La somme de contrôle de CRC64NVME est toujours une somme de contrôle d'objet complet.
x-amz-checksum-sha1 Chaîne SHA1 Cet en-tête est le condensé de 160 bits de l'objet, codé sur Base64.
x-amz-checksum-sha256 Chaîne Cet en-tête est le code Base64, 256-bit SHA256 digest de l'objet.
x-amz-sdk-checksum-algorithm Chaîne Indique l'algorithme utilisé pour créer la somme de contrôle de l'objet lors de l'utilisation du SDK.

Un en-tête Content-MD5 ou un en-tête checksum (y compris x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 ou x-amz-checksum-sha256) est nécessaire pour vérifier l'intégrité de la charge utile.

Le corps de la demande doit contenir un bloc XML avec le schéma suivant :

Corps du schéma de la demande
Elément Type Enfants Ancêtre Contrainte
ObjectLockConfiguration Conteneur ObjectLockEnabled, Rule Aucun Limite 1.
ObjectLockEnabled Chaîne Aucun ObjectLockConfiguration La seule valeur valide est ENABLED.
Rule Conteneur DefaultRetention ObjectLockConfiguration Limite 1
DefaultRetention Conteneur Days, Mode, Years Rule Limite 1.
Days Entier Aucun DefaultRetention Nombre de jours que vous souhaitez spécifier pour la durée de conservation par défaut. Il ne peut pas être combiné avec Years.
Mode Chaîne Aucun DefaultRetention COMPLIANCE ou GOVERNANCE.
Years Entier Aucun DefaultRetention Nombre d'années que vous souhaitez spécifier pour la durée de conservation par défaut. Il ne peut pas être combiné avec Days.

Exemple de demande

Cette demande répertorie les objets contenus dans le compartiment "apiary" :

GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}

Exemple de réponse

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>

Liste des téléchargements en plusieurs parties annulés ou incomplets pour un compartiment

Une demande GET émise sur un compartiment avec les paramètres appropriés permet d'extraire des informations sur les envois par téléchargement en plusieurs parties qui sont annulés ou incomplets pour un compartiment.

Syntaxe

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

Paramètres

Paramètres
Nom Type Description
prefix Chaîne Limite la réponse aux noms d'objets commençant par « {prefix} ».
delimiter Chaîne Regroupe les objets entre prefix et delimiter.
encoding-type Chaîne Si des caractères Unicode qui ne sont pas pris en charge par XML sont utilisés dans un nom d'objet, ce paramètre peut avoir pour valeur url afin de coder correctement la réponse.
max-uploads Entier Limite le nombre d'objets à afficher dans la réponse. La valeur par défaut et maximale est 1000.
key-marker Chaîne Indique à quel endroit la liste doit commencer.
upload-id-marker Chaîne Ignoré si « key-marker » n'est pas spécifié; sinon, définit un point à partir duquel commencer à répertorier les éléments situés au-dessus de « upload-id-marker ».

Exemple de requête

L'exemple suivant extrait tous les téléchargements en plusieurs parties en cours annulés et incomplets.

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

Exemple de requête

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

Exemple de réponse (aucun envoi par téléchargement en plusieurs parties n'est en cours)

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>

Création d'une liste d'éléments de configuration de partage de ressources d'origine croisée pour un compartiment

Une demande GET émise sur un compartiment avec les paramètres appropriés permet d'extraire des informations sur la configuration de partage de ressources d'origine croisée pour un compartiment.

Syntaxe

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

Exemple de requête

L'exemple suivant présente une configuration d' CORS ation sur le compartiment « apiary ».

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

Exemple de requête

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

Exemple de réponse: aucune configuration définie pour « 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>

Création d'une configuration de partage de ressources d'origine croisée pour un compartiment

Une demande PUT émise sur un compartiment avec les paramètres appropriés permet de créer ou de remplacer une configuration de partage de ressources d'origine croisée pour un compartiment.

Syntaxe

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

Eléments de contenu

Le corps de la demande doit contenir un bloc XML avec le schéma suivant :

Corps du schéma de la demande
Elément Type Enfants Ancêtre Contrainte
CORSConfiguration Conteneur CORSRule
CORSRule Conteneur AllowedOrigin, AllowedMethod Supprimer
AllowedOrigin Chaîne
CORSRule Chaîne d'origine valide
AllowedMethod Chaîne
CORSRule Chaîne de méthode valide
En-têtes facultatifs
En-tête Type Description
Content-MD5 Chaîne L' base64, qui contient le hachage de la charge utile calculé selon l'algorithme « MD5 » sur 128 bits, sert de contrôle d'intégrité afin de s'assurer que la charge utile n'a pas été altérée pendant le transfert.
x-amz-checksum-crc32 Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 32 bits CRC32 de l'objet.
x-amz-checksum-crc32c Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 32 bits CRC32C de l'objet.
x-amz-checksum-crc64nvme Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 64 bits CRC64NVME de l'objet. La somme de contrôle de CRC64NVME est toujours une somme de contrôle d'objet complet.
x-amz-checksum-sha1 Chaîne SHA1 Cet en-tête est le condensé de 160 bits de l'objet, codé sur Base64.
x-amz-checksum-sha256 Chaîne Cet en-tête est le code Base64, 256-bit SHA256 digest de l'objet.
x-amz-sdk-checksum-algorithm Chaîne Indique l'algorithme utilisé pour créer la somme de contrôle de l'objet lors de l'utilisation du SDK.

Un en-tête Content-MD5 ou un en-tête checksum (y compris x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 ou x-amz-checksum-sha256) est nécessaire pour vérifier l'intégrité de la charge utile. L'extrait suivant montre une façon d'obtenir le contenu de l'en-tête Content-MD5, qui est la représentation binaire d'un hachage base64-encoded MD5.

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

Exemple de requête

L'exemple suivant ajoute une configuration « CORS » qui autorise les requêtes provenant de www.ibm.com à envoyer des requêtes GET, PUT et POST vers le compartiment.

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

Exemple de requête

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>

Exemple de réponse

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

Suppression d'une configuration de partage de ressources d'origine croisée pour un compartiment

Une demande DELETE émise sur un compartiment avec les paramètres appropriés permet de créer ou de remplacer une configuration de partage de ressources d'origine croisée pour un compartiment.

Syntaxe

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

Exemple de requête

L'exemple suivant supprime une configuration « CORS » pour un compartiment.

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

Exemple de requête

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

Le serveur émet la réponse 204 No Content.


Création d'une liste d'éléments de contrainte d'emplacement pour un compartiment

Une demande GET émise sur un compartiment avec le paramètre approprié permet d'extraire des informations sur l'emplacement pour un compartiment.

Syntaxe

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

Exemple de requête

L'exemple suivant extrait l'emplacement du compartiment "apiary".

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

Exemple de requête

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

Exemple de réponse

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>

Création d'une configuration de cycle de vie de compartiment

Une opération PUT utilise le paramètre de requête lifecycle pour définir les paramètres de cycle de vie du compartiment. Un en-tête Content-MD5 ou un en-tête checksum (y compris x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 ou x-amz-checksum-sha256) est nécessaire pour vérifier l'intégrité de la charge utile.

L'extrait suivant montre une façon d'obtenir le contenu de l'en-tête Content-MD5, qui est la représentation binaire d'un hachage base64-encoded MD5.

Syntaxe

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

Eléments de contenu

Le corps de la demande doit contenir un bloc XML avec le schéma suivant :

Corps du schéma de la demande
Elément Type Enfants Ancêtre Contrainte
LifecycleConfiguration Conteneur Rule Aucun Limite 1
Rule Conteneur ID, Status, Filter, Transition LifecycleConfiguration Limite 1
ID Chaîne Aucun Rule Doit se composer de (a-z,A-Z,0-9) et des symboles suivants:! _ . * ' ( ) -
Filter Chaîne Prefix Rule Doit contenir un élément Prefix.
Expiration Conteneur Days, Date, ExpiredObjectDeleteMarker Rule Limite 1
Prefix Chaîne Aucun Filter Si vous utilisez une règle de transition (archive), la valeur doit être définie sur <Prefix/>. Cette limitation ne s'applique pas aux règles d'expiration.
Transition Conteneur Days, StorageClass Rule Limite 1 règle de transition et 1000 règles au total.
Days Entier non négatif Aucun Transition Doit être une valeur supérieure ou égale à 0.
Date Date Aucun Transition Elle doit être au format ISO 8601 et la date doit se situer dans le futur.
StorageClass Chaîne Aucun Transition Doit être défini sur GLACIER ou ACCELERATED.
ExpiredObjectDeleteMarker Booléen Aucun Expiration L'adresse doit être true ou false.
NoncurrentVersionExpiration Conteneur NoncurrentDays NoncurrentVersionExpiration Limite 1
NoncurrentDays Entier positif Aucun Transition Doit être une valeur supérieure à 0.
AbortIncompleteMultipartUpload Conteneur DaysAfterInitiation Rule Limite 1
DaysAfterInitiation Entier non négatif Aucun AbortIncompleteMultipartUpload Doit être une valeur supérieure à 0.
En-tête facultatif
En-tête Type Description
Content-MD5 Chaîne L' base64, qui contient le hachage de la charge utile calculé selon l'algorithme « MD5 » sur 128 bits, sert de contrôle d'intégrité afin de s'assurer que la charge utile n'a pas été altérée pendant le transfert.
x-amz-checksum-crc32 Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 32 bits CRC32 de l'objet.
x-amz-checksum-crc32c Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 32 bits CRC32C de l'objet.
x-amz-checksum-crc64nvme Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 64 bits CRC64NVME de l'objet. La somme de contrôle de CRC64NVME est toujours une somme de contrôle d'objet complet.
x-amz-checksum-sha1 Chaîne SHA1 Cet en-tête est le condensé de 160 bits de l'objet, codé sur Base64.
x-amz-checksum-sha256 Chaîne Cet en-tête est le code Base64, 256-bit SHA256 digest de l'objet.
x-amz-sdk-checksum-algorithm Chaîne Indique l'algorithme utilisé pour créer la somme de contrôle de l'objet lors de l'utilisation du SDK.

IBM Cloud® Object Storage IaaS Les comptes (non-IAM) ne peuvent pas définir la classe de stockage de transition sur ACCELERATED.

<LifecycleConfiguration>
    <Rule>
        <ID>{string}</ID>
        <Status>Enabled</Status>
        <Filter>
            <Prefix/>
        </Filter>
        <Transition>
            <Days>{integer}</Days>
            <StorageClass>GLACIER</StorageClass>
        </Transition>
    </Rule>
</LifecycleConfiguration>

Le fragment suivant montre une façon d'obtenir le contenu de cet en-tête particulier.

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

Exemple de requête

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

Exemple de requête

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>

Le serveur émet la réponse 200 OK.


<LifecycleConfiguration>
    <Rule>
        <ID>{string}</ID>
        <Status>Enabled</Status>
        <Filter>
            <Prefix/>
        </Filter>
        <Expiration>
            <Days>{integer}</Days>
        </Expiration>
    </Rule>
</LifecycleConfiguration>

Le fragment suivant montre une façon d'obtenir le contenu de cet en-tête particulier.

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

Exemple de requête

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>

Exemple de réponse Le serveur répond avec « 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

Exemple de requête

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

Exemple de requête

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

Extraction d'une configuration de cycle de vie de compartiment

Une opération GET utilise le paramètre de requête lifecycle pour extraire les paramètres de cycle de vie du compartiment.

Syntaxe

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

Exemple de requête

GET /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}

Exemple de requête

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

Réponse exemple

<LifecycleConfiguration>
    <Rule>
        <ID>my-archive-policy</ID>
        <Filter>
            <Prefix/>
        </Filter>
        <Status>Enabled</Status>
        <Transition>
            <Days>20</Days>
            <StorageClass>GLACIER</StorageClass>
        </Transition>
    </Rule>
</LifecycleConfiguration>

Exemple de requête

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==

Réponse exemple

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>

Suppression des données périmées à l'aide de règles d'expiration

Toute action d'expiration pour les objets soumis à la politique de conservation « Immutable Object Storage » (Immutable : ne pas supprimer) d'un compartiment est reportée jusqu'à ce que la politique de conservation ne soit plus appliquée.

Pour plus d'informations sur l'utilisation de la configuration de cycle de vie pour supprimer des objets, consultez la documentation.

Cette implémentation de l'opération PUT utilise le paramètre de requête lifecycle pour définir les paramètres de cycle de vie du compartiment. Cette opération permet de créer une définition de règle de cycle de vie unique pour un compartiment. La politique est définie comme un ensemble de règles comprenant les paramètres suivants : ID, Status, Filter et Expiration.

En-têtes facultatifs
En-tête Type Description
Content-MD5 Chaîne L' Base64, qui contient le hachage de la charge utile calculé selon l'algorithme « MD5 » sur 128 bits, sert de contrôle d'intégrité afin de garantir que la charge utile n'a pas été altérée pendant le transfert.
x-amz-checksum-crc32 Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 32 bits CRC32 de l'objet.
x-amz-checksum-crc32c Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 32 bits CRC32C de l'objet.
x-amz-checksum-crc64nvme Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 64 bits CRC64NVME de l'objet. La somme de contrôle de CRC64NVME est toujours une somme de contrôle d'objet complet.
x-amz-checksum-sha1 Chaîne SHA1 Cet en-tête est le condensé de 160 bits de l'objet, codé sur Base64.
x-amz-checksum-sha256 Chaîne Cet en-tête est le code Base64, 256-bit SHA256 digest de l'objet.
x-amz-sdk-checksum-algorithm Chaîne Indique l'algorithme utilisé pour créer la somme de contrôle de l'objet lors de l'utilisation du SDK.

Un en-tête Content-MD5 ou un en-tête checksum (y compris x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 ou x-amz-checksum-sha256) est nécessaire pour vérifier l'intégrité de la charge utile.

L'extrait suivant montre une façon d'obtenir le contenu de l'en-tête Content-MD5, qui est la représentation binaire d'un hachage base64-encoded MD5.

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

Le corps de la demande doit contenir un bloc XML avec le schéma suivant :

Corps du schéma de la demande
Elément Type Enfants Ancêtre Contrainte
LifecycleConfiguration Conteneur Rule Aucun Limite 1.
Rule Conteneur ID, Status, Filter, Expiration LifecycleConfiguration Limite 1000.
ID Chaîne Aucun Rule Doit se composer de (a-z,A-Z,0-9) et des symboles suivants: ! _ . * ' ( ) -
Filter Chaîne Prefix Rule Doit contenir un élément Prefix.
Prefix Chaîne Aucun Filter La règle s'applique à tous les objets dont les clés correspondent à ce préfixe.
Expiration Conteneur Days ou Date Rule Limite 1.
Days Entier non négatif Aucun Expiration Doit être une valeur supérieure à 0.
Date Date Aucun Expiration Doit être au format ISO 8601.

Syntaxe

PUT https://{endpoint}/{bucket}?lifecycle # path style
PUT https://{bucket}.{endpoint}?lifecycle # virtual host style

Exemple de requête

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>

Suppression de la configuration de cycle de vie d'un compartiment

Une demande DELETE émise sur un compartiment avec les paramètres appropriés permet de retirer des configurations de cycle de vie pour un compartiment.

Syntaxe

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

Exemple de requête

DELETE /apiary?lifecycle HTTP/1.1
Authorization: {authorization-string}
Host: s3.us.cloud-object-storage.appdomain.cloud

Exemple de requête

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

Le serveur émet la réponse 204 No Content.

Exemple de requête

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==

Exemple de réponse

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

Le serveur émet la réponse 204 No Content.

Ajout d'une règle de conservation à un compartiment existant

La fonction Immutable Object Storage est disponible uniquement dans certaines régions, voir Services intégrés pour obtenir des détails. Ce service nécessite également un forfait « Standard ». Pour plus d'informations, voir la section sur la tarification.

Pour en savoir plus sur Immutable Object Storage, consultez la documentation.

Les valeurs minimales et maximales prises en charge pour les paramètres de durée de conservation MinimumRetention, DefaultRetention et MaximumRetention vont de 0 jour au minimum à 365 243 jours (1 000 ans) au maximum.

Cette opération n'utilise pas de paramètres de requête supplémentaires. L'en-tête Content-MD5 ou l'en-tête checksum (y compris x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 ou x-amz-checksum-sha256) est nécessaire pour vérifier l'intégrité de la charge utile. L'extrait suivant montre une façon d'obtenir le contenu de l'en-tête Content-MD5, qui est la représentation binaire d'un hachage base64-encoded MD5.

Les règles sont appliquées jusqu'à la fin d'une période de conservation et ne peuvent pas être modifiées tant que la période de conservation n'est pas arrivée à expiration. Bien que IBM Cloud® Object Storage utilise l'API S3 pour la plupart des opérations, les API utilisées pour configurer les politiques de conservation ne sont pas les mêmes que celles de l'API S3, même si certaines terminologies peuvent être communes. Lisez attentivement cette documentation afin d'empêcher tout utilisateur de votre organisation de créer des objets qui ne peuvent être supprimés, même par les administrateurs d' IBM Cloud.

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

Syntaxe

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

Le corps de la demande doit contenir un bloc XML avec le schéma suivant :

Corps du schéma de la demande
Elément Type Enfants Ancêtre Contrainte
ProtectionConfiguration Conteneur Status, MinimumRetention, MaximumRetention, DefaultRetention
Status Chaîne
ProtectionConfiguration Chaîne de statut valide
MinimumRetention Conteneur Days ProtectionConfiguration
MaximumRetention Conteneur Days ProtectionConfiguration
DefaultRetention Conteneur Days ProtectionConfiguration
Days Entier
MinimumRetention, MaximumRetention, DefaultRetention Entier de conservation valide
En-têtes facultatifs
En-tête Type Description
Content-MD5 Chaîne L' base64, qui contient le hachage de la charge utile calculé selon l'algorithme « MD5 » sur 128 bits, sert de contrôle d'intégrité afin de s'assurer que la charge utile n'a pas été altérée pendant le transfert.
x-amz-checksum-crc32 Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 32 bits CRC32 de l'objet.
x-amz-checksum-crc32c Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 32 bits CRC32C de l'objet.
x-amz-checksum-crc64nvme Chaîne Cet en-tête est la somme de contrôle Base64 encodée, 64 bits CRC64NVME de l'objet. La somme de contrôle de CRC64NVME est toujours une somme de contrôle d'objet complet.
x-amz-checksum-sha1 Chaîne SHA1 Cet en-tête est le condensé de 160 bits de l'objet, codé sur Base64.
x-amz-checksum-sha256 Chaîne Cet en-tête est le code Base64, 256-bit SHA256 digest de l'objet.
x-amz-sdk-checksum-algorithm Chaîne Indique l'algorithme utilisé pour créer la somme de contrôle de l'objet lors de l'utilisation du SDK.

Exemple de requête

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>

Exemple de réponse

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

Configurer un compartiment pour l'hébergement d'un site web statique

Une commande « PUT » envoyée à un compartiment avec les paramètres appropriés permet de créer ou de remplacer la configuration d'un site web statique pour ce compartiment.

Syntaxe

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

Eléments de contenu

Le corps de la demande doit contenir un bloc XML avec le schéma suivant :

Corps du schéma de la demande
Elément Type Enfants Ancêtre Remarques
WebsiteConfiguration Conteneur ErrorDocument, IndexDocument, RedirectAllRequestsTo, RoutingRule
Obligatoire
ErrorDocument Conteneur Key WebsiteConfiguration
Key Chaîne
ErrorDocument
IndexDocument Conteneur Suffix WebsiteConfiguration
Suffix Chaîne
IndexDocument
RedirectAllRequestsTo Conteneur HostName, Protocol WebsiteConfiguration S'il est indiqué, il doit s'agir du seul élément spécifié
HostName Chaîne
RedirectAllRequestsTo
Protocol Chaîne
RedirectAllRequestsTo
RoutingRules Conteneur RoutingRule WebsiteConfiguration
RoutingRule Conteneur Condition, Redirect RoutingRules
Condition Conteneur HttpErrorCodeReturnedEquals, KeyPrefixEquals RoutingRule
HttpErrorCodeReturnedEquals Chaîne
Condition
KeyPrefixEquals Chaîne
Condition
Redirect Conteneur HostName, HttpRedirectCode, Protocol, ReplaceKeyPrefixWith, ReplaceKeyWith RoutingRule
HostName Chaîne
Redirect
HttpRedirectCode Chaîne
Redirect
Protocol Chaîne
Redirect
ReplaceKeyPrefixWith Chaîne
Redirect
ReplaceKeyWith Chaîne
Redirect

Exemple de demande

L'exemple suivant ajoute une configuration de site Web qui sert un site Web de base qui recherche un fichier index.html dans chaque préfixe. Par exemple, une demande envoyée à /apiary/images/ sert le contenu de /apiary/images/index.html sans qu'il soit nécessaire de spécifier le fichier réel.

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>

Exemple de réponse

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

Supprimer une configuration de site Web pour un compartiment

Une demande DELETE envoyée à un compartiment avec les paramètres appropriés supprime la configuration du site Web pour un compartiment.

Syntaxe

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

Exemple de requête

L'exemple suivant supprime une configuration de site Web pour un compartiment.

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

Exemple de requête

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

Le serveur émet la réponse 204 No Content.


Bloquer les listes de contrôle d'accès publiques sur un compartiment

Une demande PUT émise vers un compartiment avec les paramètres appropriés empêche l'ajout de listes de contrôle d'accès d'accès public sur un compartiment. Il peut être défini pour faire échouer les nouvelles demandes de liste de contrôle d'accès ou pour les ignorer. BlockPublicAcls n'affecte pas les listes de contrôle d'accès existantes, mais IgnorePublicAcls ignore les listes de contrôle d'accès existantes. Cette opération n'affecte pas les règles d'accès public IAM.

Syntaxe

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

Eléments de contenu

Le corps de la demande doit contenir un bloc XML avec le schéma suivant :

Corps du schéma de la demande
Elément Type Enfants Ancêtre Remarques
PublicAccessBlockConfiguration Conteneur BlockPublicAcls, IgnorePublicAcls
Obligatoire
BlockPublicAcls Booléen
PublicAccessBlockConfiguration
IgnorePublicAcls Booléen
PublicAccessBlockConfiguration

Exemple de demande

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>

Exemple de réponse

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

Vérifier un bloc de liste de contrôle d'accès public pour un compartiment

Un GET émis pour un compartiment avec les paramètres appropriés renvoie la configuration de bloc de liste de contrôle d'accès pour un compartiment.

Syntaxe

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

Exemple de requête

L'exemple suivant lit un bloc d'accès public pour un compartiment.

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

Exemple de requête

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>

Supprimer un bloc de liste de contrôle d'accès public d'un compartiment

Un DELETE émis pour un compartiment avec les paramètres appropriés supprime le bloc de liste de contrôle d'accès public d'un compartiment.

Syntaxe

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

Exemple de requête

L'exemple suivant supprime un bloc de liste de contrôle d'accès pour un compartiment.

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

Exemple de requête

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

Le serveur émet la réponse 204 No Content.


Opérations de la politique de sauvegarde

L'API Backup Policy d' IBM Cloud® Object Storage fournit des opérations permettant de créer, gérer et interagir avec les politiques de sauvegarde. Les politiques de sauvegarde définissent la manière dont les données contenues dans les godets sont sauvegardées dans les espaces de stockage.

Pour plus d'informations sur les autorisations et l'accès, voir Autorisations de la politique de sauvegarde.

Créer une stratégie de sauvegarde

Une requête POST vers le point de terminaison /buckets/{bucket}/backup_policies crée une nouvelle politique de sauvegarde pour un godet.

En-têtes
En-tête Type Obligatoire ? Description
MD5 Chaîne Non MD5 hachage du contenu. S'il est fourni, le hachage de la demande doit correspondre.
Paramètres de chemin
Paramètre du chemin d'accès Type Obligatoire ? Description
bucket_name Chaîne Oui Le nom du seau auquel la politique de sauvegarde est appliquée.

Syntaxe

POST https://{endpoint}/buckets/{bucket}/backup_policies

Corps de demande

{
  "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"
}

Exemple de demande

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"
}

Exemple de réponse

{
  "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"
}

Liste des politiques de sauvegarde

Une requête GET vers le point de terminaison /buckets/{bucket}/backup_policies permet de récupérer toutes les politiques de sauvegarde d'un seau.

Paramètres de chemin
Paramètre du chemin d'accès Type Obligatoire ? Description
bucket_name Chaîne Oui Le nom du seau pour lequel la liste des politiques de sauvegarde doit être établie.

Syntaxe

GET https://{endpoint}/buckets/{bucket}/backup_policies

Exemple de demande

GET /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com

Exemple de réponse

[
  {
    "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"
  }
]

Obtenir les détails de la politique de sauvegarde

Une requête GET vers le point de terminaison /buckets/{bucket}/backup_policies/{policy_id} permet de récupérer les détails d'une politique de sauvegarde spécifique.

Paramètres de chemin
Paramètre du chemin d'accès Type Obligatoire ? Description
bucket_name Chaîne Oui Nom du compartiment.
policy_id Chaîne Oui L'identifiant de la stratégie de sauvegarde.

Syntaxe

GET https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}

Exemple de demande

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

Exemple de réponse

{
  "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
  }
}

Supprimer une politique de sauvegarde

Une requête DELETE adressée au point de terminaison /buckets/{bucket}/backup_policies/{policy_id} supprime une politique de sauvegarde spécifique.

Paramètres de chemin
Paramètre du chemin d'accès Type Obligatoire ? Description
bucket_name Chaîne Oui Nom du compartiment.
policy_id Chaîne Oui L'identifiant de la stratégie de sauvegarde.

Syntaxe

DELETE https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}

Exemple de demande

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

Exemple de réponse

HTTP/1.1 204 No Content

Pour plus d'informations sur les opérations de politique de sauvegarde, voir Gestion de l'espace de stockage.

Etapes suivantes

Pour plus d'informations, voir Opérations d'objet.