Opérations sur les objets

Les fonctionnalités modernes d' IBM Cloud® Object Storage sont facilement accessibles via une API RESTful. Les opérations et les méthodes de lecture, d'écriture et de configuration des objets (stockés dans un compartiment) sont documentées ici.

Pour plus d'informations sur les noeuds finaux, voir Noeuds finaux et emplacements de stockage.

Remarque concernant 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 des 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 à votre identifiant de service cf4965cebe074720a4929759f57e1214
{date} Date formatée de votre demande (yyyymmdd) 20180613
{region} Code d'emplacement de votre noeud final standard-us
{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

Envoi par téléchargement d'un objet

Une demande PUT avec un chemin d'accès à un objet permet d'envoyer par téléchargement le corps de demande en tant qu'objet. Tous les objets téléchargés dans une seule unité d'exécution doivent être inférieurs à 500 Mo afin de réduire le risque d'interruptions du réseau. (les objets qui sont téléchargés en plusieurs parties peuvent atteindre jusqu'à 10 To).

Informations personnelles identifiables (PII): lorsque vous nommez des compartiments ou des objets, n'utilisez aucune information permettant d'identifier un utilisateur (personne physique) par son nom, son emplacement ou tout autre moyen.

Il est possible de diffuser des objets d'une taille pouvant atteindre 5 Go à l'aide d'une seule demande PUT. Les téléchargements en plusieurs parties sont plus fiables et peuvent être téléchargés plus efficacement en utilisant plusieurs unités d'exécution pour télécharger des parties en parallèle. Le téléchargement d'objets plus volumineux dans une même demande PUT entraîne les limitations de performances d'une seule unité d'exécution et, en cas d'échec, les téléchargements à unité d'exécution unique doivent être relancés dans leur intégralité (alors qu'avec MPU, seules les parties spécifiques qui ont échoué doivent être relancées). Le débit précis pouvant être atteint par un seul thread varie en fonction de la bande passante réseau entre le client et le point d'extrémité de l' IBM Cloud, du taux de perte de paquets (le cas échéant) sur cette connexion, de l'utilisation de HTTP par rapport à HTTPS, des chiffrements spécifiques utilisés dans la connexion et des paramètres de connexion TCP spécifiques (tels que la taille de la fenêtre), ainsi que d'autres facteurs. Bien que ces facteurs puissent être optimisés pour un téléchargement à une seule unité d'exécution, les optimisations s'appliquent également aux téléchargements à plusieurs unités d'exécution (multiparties).

Informations personnelles identifiables (PII): lors de la création de compartiments ou de l'ajout d'objets, veillez à ne pas utiliser d'informations permettant d'identifier un utilisateur (personne physique) par son nom, son emplacement ou tout autre moyen.

Syntaxe

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

En-têtes facultatifs

En-têtes facultatifs
En-tête Type Description
x-amz-tagging chaîne Ensemble de balises à appliquer à l'objet, formaté en tant que paramètres de requête ("SomeKey=SomeValue").
x-amz-object-lock-mode chaîne La valeur valide est COMPLIANCE ou GOVERNANCE- requise si x-amz-object-lock-retain-until-date est présent.
x-amz-object-lock-retain-until-date ISO8601 Date et heure Obligatoire si x-amz-object-lock-mode est présent.
x-amz-object-lock-legal-hold chaîne Les valeurs valides sont ON ou OFF.
Content-MD5 Chaîne L' Base64, qui encode le hachage 128 bits MD5 de la charge utile, est utilisé comme contrôle d'intégrité pour 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.
x-amz-trailer Chaîne Indique l'en-tête de la valeur de la somme de contrôle qui sera trouvée dans le trailer de la charge utile afin de vérifier l'intégrité du téléchargement de l'objet.

Exemple de demande

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

Content-Length: 533

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

Exemple de demande

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

Content-Length: 533

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

Exemple de réponse

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

Obtention des en-têtes d'un objet

Une demande HEAD avec un chemin d'accès à un objet permet d'extraire les en-têtes de cet objet.

La Etag valeur renvoyée pour les objets chiffrés à l'aide de SSE-KP est le hachage MD5 de l'objet déchiffré d'origine.

Syntaxe

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

En-têtes facultatifs

En-têtes facultatifs
En-tête Type Description
x-amz-checksum-mode chaîne Indique s'il faut ou non inclure des métadonnées de somme de contrôle dans la réponse.

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

Réception par téléchargement d'un objet

Une demande GET avec un chemin d'accès à un objet permet de recevoir par téléchargement cet objet.

La valeur Etag renvoyée pour les objets chiffrés à l'aide du chiffrement SSE-C/SSE-KP ne sera pas le hachage MD5 de l'objet déchiffré d'origine.

Syntaxe

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

En-têtes facultatifs

En-tête Type Description
range Chaîne Renvoie les octets d'un objet dans la plage spécifiée.
x-amz-checksum-mode Chaîne Indique s'il faut ou non inclure des métadonnées de somme de contrôle dans la réponse.

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

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

Suppression d'un objet

Une demande DELETE avec un chemin d'accès à un objet permet de supprimer cet objet.

Syntaxe

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

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

Suppression de plusieurs objets

Une demande POST avec un chemin d'accès à un compartiment et les paramètres appropriés permet de supprimer un ensemble spécifié d'objets. 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.

En-têtes facultatifs

En-têtes facultatifs
En-tête Type Description
Content-MD5 Chaîne L' base64, qui encode le hachage 128 bits de l' MD5, est utilisé comme contrôle d'intégrité pour 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.

Lorsqu'un objet spécifié dans la requête est introuvable, le résultat renvoie « supprimé ».

Les suppressions d'objets multiples impliquent un POST operation qui est facturé en tant que classe A. Le coût de la demande POST pour plusieurs suppressions varie en fonction de la classe de stockage des objets et de la quantité de données supprimées. Pour plus d'informations sur les tarifs, consultez la page Tarifs d' IBM Cloud Object Storage.

Eléments facultatifs

En-tête
En-tête Type Description
Quiet Booléen Active le mode silencieux pour la demande.

La demande peut contenir un maximum de 1000 clés à supprimer. Bien que cela s'avère très utile pour réduire le nombre de demandes, soyez prudent lorsque vous supprimez plusieurs clés. Tenez compte également de la taille des objets de manière à obtenir de bonnes performances.

Le code suivant montre un exemple de création de la représentation nécessaire du contenu de l'en-tête:

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

Syntaxe

POST https://{endpoint}/{bucket-name}?delete= # path style
POST https://{bucket-name}.{endpoint}?delete= # 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
Supprimer Conteneur Objet
Objet Conteneur Clé Supprimer
Clé Chaîne
Objet Chaîne de clé valide

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

Ajouter ou mettre à jour la conservation d'un objet

Une PUT émise pour un objet avec les paramètres appropriés ajoute ou prolonge la période de conservation. En COMPLIANCE mode, la période de conservation peut uniquement être prolongée, mais ne peut être raccourcie ni supprimée. En GOVERNANCE mode, les utilisateurs autorisés peuvent prolonger, raccourcir ou supprimer la période de conservation en incluant x-amz-bypass-governance-retention l'en-tête.

Syntaxe

PUT https://{endpoint}/{bucket-name}/{object-name}?retention # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?retention # 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
Conservation Conteneur Mode, RetainUntilDate
Obligatoire
Mode Chaîne
Conservation Obligatoire - la valeur valide est COMPLIANCE ou GOVERNANCE
RetainUntilDate Horodatage
Conservation Obligatoire

En-têtes facultatifs

En-tête Type Description
x-amz-bypass-governance-retention Chaîne Cet en-tête permet aux utilisateurs autorisés de passer outre les paramètres de conservation du mode GOVERNANCE afin de supprimer ou de modifier un objet avant sa date de conservation.

Le code suivant montre un exemple de création de la représentation nécessaire du contenu de l'en-tête:

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

Exemple de demande

Il s'agit d'un exemple d'ajout ou d'extension de la conservation sur un objet.

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

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


Ajouter des balises à un objet

Un PUT émis pour un objet avec les paramètres appropriés crée ou remplace un ensemble de balises clé-valeur associées à l'objet.

Syntaxe

PUT https://{endpoint}/{bucket-name}/{object-name}?tagging # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?tagging # 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
Etiquetage Conteneur TagSet
Obligatoire
TagSet Conteneur Balise Etiquetage Obligatoire
Balise Chaîne Clé, valeur TagSet Obligatoire
Clé Conteneur
Balise Obligatoire
Valeur Chaîne
Balise Obligatoire

Les balises doivent respecter les restrictions suivantes :

  • Un objet peut comporter jusqu'à 10 balises
  • Pour chaque objet, chaque clé de balise doit être unique et chaque clé de balise ne peut avoir qu'une seule valeur.
  • Longueur de clé minimale-1 caractère Unicode en UTF-8
  • Longueur de clé maximale-128 caractères Unicode en UTF-8
  • Taille maximale d'octet de clé-256 octets
  • Longueur minimale de la valeur-0 caractère Unicode en UTF-8 (la valeur de balise peut être vide)
  • Longueur maximale de la valeur-256 caractères Unicode en UTF-8
  • Taille d'octet maximale de la valeur-512 octets
  • Une clé et une valeur d'étiquette peuvent être composées de caractères alphanumériques américains (a-z,A-Z,0-9), d'espaces représentables dans UTF-8, et des symboles suivants : + -, =, ., _, :, /, @
  • Les clés de balise et les valeurs sont sensibles à la casse
  • ibm: ne peut pas être utilisé comme préfixe de clé pour les balises
En-têtes facultatifs
En-tête Type Description
Content-MD5 Chaîne L' Base64, qui encode le hachage 128 bits MD5 de la charge utile, est utilisé comme contrôle d'intégrité pour 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 demande

Voici un exemple d'ajout d'un ensemble de balises à un objet.

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

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

Lire les balises d'un objet

Un GET émis pour un objet avec les paramètres appropriés renvoie l'ensemble des balises clé-valeur associées à l'objet.

Syntaxe

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

Exemple de demande

Voici un exemple de lecture d'un ensemble de balises d'objet.

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

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: 128
<Tagging>
   <TagSet>
      <Tag>
         <Key>string</Key>
         <Value>string</Value>
      </Tag>
   </TagSet>
</Tagging>

Supprimer les balises d'un objet

Un DELETE émis pour un compartiment avec les paramètres appropriés supprime les balises d'un objet.

Syntaxe

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

Exemple de demande

Voici un exemple de suppression des balises d'un objet.

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

Exemple de demande

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

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


Copie d'un objet

Une demande PUT avec un chemin d'accès à un nouvel objet permet de créer une nouvelle copie d'un autre objet qui est spécifié par l'en-tête x-amz-copy-source. En l'absence d'autres modifications, les métadonnées restent inchangées.

Informations personnelles identifiables (PII): lorsque vous nommez des compartiments ou des objets, n'utilisez aucune information permettant d'identifier un utilisateur (personne physique) par son nom, son emplacement ou tout autre moyen.

La copie d'objets (même entre des emplacements) n'entraîne pas de frais de bande passante sortante publique. Toutes les données restent dans le réseau interne COS.

Syntaxe

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

En-têtes facultatifs

En-tête Type Description
x-amz-metadata-directive Chaîne (COPY ou REPLACE) Une chaîne REPLACE remplace les métadonnées d'origine par de nouvelles métadonnées fournies.
x-amz-tagging chaîne Ensemble de balises à appliquer à l'objet, formaté en tant que paramètres de requête ("SomeKey=SomeValue").
x-amz-tagging-directive Chaîne (COPY ou REPLACE) A REPLACE remplace les balises d'origine par les nouvelles balises fournies.
x-amz-copy-source-if-match Chaîne (ETag) Crée une copie si la valeur ETag spécifiée correspond à l'objet source.
x-amz-copy-source-if-none-match Chaîne (ETag) Crée une copie si la valeur ETag spécifiée est différente de l'objet source.
x-amz-copy-source-if-unmodified-since Chaîne (horodatage) Crée une copie si l'objet source n'a pas été modifié depuis la date spécifiée. La date doit être une date HTTP valide (par exemple, Wed, 30 Nov 2016 20:21:38 GMT).
x-amz-copy-source-if-modified-since Chaîne (horodatage) Crée une copie si l'objet source a été modifié depuis la date spécifiée. La date doit être une date HTTP valide (par exemple, Wed, 30 Nov 2016 20:21:38 GMT).
x-amz-checksum-algorithm Chaîne Indique l'algorithme de somme de contrôle qui sera utilisé pour créer la somme de contrôle de l'objet de destination.

Exemple de demande

L'exemple de base suivant prend l'objet bee du compartiment garden et en crée une copie dans le compartiment apiary avec la nouvelle clé wild-bee :

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

Exemple de demande

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

Exemple de réponse

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

Vérification de la configuration de partage de ressources d'origine croisée d'un objet

Une demande OPTIONS avec un chemin d'accès à un objet, ainsi qu'une origine et un type de demande permet de vérifier si cet objet est accessible depuis cette origine en utilisant ce type de demande. Contrairement aux autres demandes, une demande OPTIONS ne requiert pas les en-têtes authorization ou x-amx-date.

Syntaxe

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

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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


Envoi par téléchargement d'objets en plusieurs parties

Lorsque vous gérez des objets volumineux, il est recommandé d'utiliser des opérations d'envoi par téléchargement en plusieurs parties pour écrire ces objets dans IBM Cloud® Object Storage. L'envoi par téléchargement d'un objet peut être effectué sous la forme d'un ensemble de parties et ces parties peuvent être envoyées par téléchargement indépendamment dans n'importe quel ordre et en parallèle. Une fois l'exécution de l'envoi par téléchargement terminée, Object Storage présente toutes les parties en tant qu'objet unique. Cela procure de nombreux avantages. Les interruptions réseau ne provoquent pas l'échec des envois par téléchargement volumineux, les envois par téléchargement peuvent être mis en pause et redémarrés plus tard, et les objets peuvent être envoyés par téléchargement à mesure qu'ils sont créés.

Les envois par téléchargement en plusieurs parties ne sont disponibles que pour les objets de plus de 5 Mo. Pour les objets de moins de 50 Go, il est recommandé d'utiliser une taille de partie comprise entre 20 Mo et 100 Mo afin d'optimiser les performances. Pour les objets plus volumineux, la taille des parties peut être augmentée sans que cela ait un impact significatif sur les performances.

En raison de la complexité supplémentaire, il est conseillé aux développeurs d'utiliser une bibliothèque qui fournit la prise en charge de l'envoi par téléchargement en plusieurs parties.

Les envois par téléchargement en plusieurs parties qui sont incomplets subsistent jusqu'à ce qu'ils soient abandonnés à l'aide de AbortIncompleteMultipartUpload ou que l'objet soit supprimé. Si un envoi par téléchargement en plusieurs parties qui est incomplet n'est pas abandonné, l'envoi par téléchargement partiel continue d'utiliser les ressources. La conception des interfaces doit tenir compte de cela et prévoir le nettoyage des envois par téléchargement en plusieurs parties qui sont incomplets.

L'envoi par téléchargement d'un objet en plusieurs parties s'effectue en trois phases :

  1. L'envoi par téléchargement est initié et une valeur UploadId est créée.
  2. Des parties individuelles sont envoyées par téléchargement en spécifiant leurs numéros séquentiels et la valeur UploadId pour l'objet.
  3. Une fois le téléchargement des parties terminé, l'envoi par téléchargement est achevé en envoyant une demande avec la valeur UploadId et un bloc XML qui recense chaque numéro de partie et sa valeur Etag respective.

Lancement d'un envoi par téléchargement en plusieurs parties

Une demande POST émise sur un objet avec le paramètre de requête upload crée une nouvelle valeur UploadId, laquelle est alors référencée par chaque partie de l'objet en cours d'envoi par téléchargement.

Informations personnelles identifiables (PII): lorsque vous nommez des compartiments ou des objets, n'utilisez aucune information permettant d'identifier un utilisateur (personne physique) par son nom, son emplacement ou tout autre moyen.

Syntaxe

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

En-têtes facultatifs

En-têtes facultatifs
En-tête Type Description
x-amz-checksum-algorithm Chaîne Indique l'algorithme de somme de contrôle qui sera utilisé pour créer la somme de contrôle de l'ensemble de l'objet multipartite.
x-amz-checksum-type Chaîne Indique le type de somme de contrôle à utiliser pour créer la somme de contrôle de l'ensemble de l'objet multipartite.

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

Remonter une partie

Une demande PUT qui est émise sur un objet avec les paramètres de requête partNumber et uploadId télécharge une partie d'un objet. Les parties peuvent être envoyées par téléchargement en série ou en parallèle, mais doivent être numérotées dans l'ordre.

Informations personnelles identifiables (PII): lorsque vous nommez des compartiments ou des objets, n'utilisez aucune information permettant d'identifier un utilisateur (personne physique) par son nom, son emplacement ou tout autre moyen.

Syntaxe

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

En-têtes facultatifs

En-têtes facultatifs
En-tête Type Description
Content-MD5 Chaîne L' Base64, qui encode le hachage 128 bits MD5 de la charge utile, est utilisé comme contrôle d'intégrité pour 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.
x-amz-trailer Chaîne Indique l'en-tête de la valeur de la somme de contrôle qui sera trouvée dans le trailer de la charge utile afin de vérifier l'intégrité du téléchargement de l'objet.

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

Création d'une liste de parties

Une demande GET avec un chemin d'accès à un objet à plusieurs parties et une valeur UploadID active spécifiée en tant que paramètre de requête renvoie une liste contenant toutes les parties de l'objet.

Syntaxe

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

Paramètres de requête

Paramètres
Paramètre Obligatoire? Type Description
uploadId Obligatoire chaîne ID de téléchargement renvoyé lors de l'initialisation d'un téléchargement à plusieurs parties.
max-parts Facultatif chaîne Valeur par défaut: 1000.
part-number​-marker Facultatif chaîne Définit où commence la liste des parties.

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

Achèvement d'un envoi par téléchargement en plusieurs parties

Une demande POST qui est émise sur un objet avec le paramètre de requête uploadId et le bloc XML approprié dans le corps permet d'achever un envoi par téléchargement en plusieurs parties.

Syntaxe

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

En-têtes facultatifs

En-tête facultatif
En-tête Type Description
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-checksum-type Chaîne Indique le type de somme de contrôle à utiliser pour créer la somme de contrôle de l'ensemble de l'objet multipartite.

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
CompleteMultipartUpload Conteneur Référence
Référence Conteneur PartNumber, ETag Supprimer
PartNumber Chaîne
Objet Numéro de pièce valide
ETag Chaîne
Objet Chaîne de valeur ETag valide
<CompleteMultipartUpload>
  <Part>
    <PartNumber>{sequential part number}</PartNumber>
    <ETag>{ETag value from part upload response header}</ETag>
  </Part>
</CompleteMultipartUpload>

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

Abandon d'envois par téléchargement en plusieurs parties qui sont incomplets

Une demande DELETE émise sur un objet avec le paramètre de requête uploadId permet de supprimer toutes les parties non terminées d'un envoi par téléchargement en plusieurs parties.

Syntaxe

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

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

Restauration temporaire d'un objet archivé

Une demande POST émise sur un objet avec le paramètre de requête restore permet de demander la restauration temporaire d'un objet archivé. 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.

Un objet archivé doit être restauré avant d'être reçu par téléchargement ou modifié. La durée de vie de l'objet au bout de laquelle la copie temporaire de l'objet est supprimée, doit être spécifiée.

Pour les compartiments dont la classe de stockage de transition de règle de cycle de vie est GLACIER, il peut y avoir un délai pouvant aller jusqu'à 12 heures avant que la copie restaurée ne soit accessible. Si la classe de stockage de transition a été définie sur ACCELERATED, un délai de deux (2) heures peut s'écouler avant que l'objet restauré ne soit disponible. Une demande HEAD peut être utilisée pour vérifier si la copie restaurée est disponible.

Pour être restauré définitivement, l'objet doit être copié dans un compartiment qui ne possède pas de configuration de cycle de vie active.

Syntaxe

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

Eléments de contenu

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

Elément Type Enfants Ancêtre Contrainte
RestoreRequest Conteneur Days, GlacierJobParameters Aucun Aucun
Jours Entier Aucun RestoreRequest Spécifie la durée de vie de l'objet temporairement restauré. Le nombre minimal de jours pendant lesquels une copie restaurée de l'objet peut exister est 1. Une fois la période de restauration écoulée, la copie temporaire de l'objet est supprimée.
GlacierJobParameters Chaîne Niveau RestoreRequest Aucun
Niveau Chaîne Aucun GlacierJobParameters Facultatif. Si cette zone n'est pas renseignée, la valeur associée au niveau de stockage de la règle qui était en vigueur lors de l'écriture de l'objet est utilisée par défaut. Si cette valeur n'est pas laissée vide, elle doit être définie sur Bulk si la classe de stockage de transition pour la règle de cycle de vie du compartiment a été définie sur GLACIER, et doit être définie sur Accelerated si la classe de stockage de transition a été définie sur ACCELERATED.
En-têtes facultatifs
En-tête Type Description
Content-MD5 Chaîne L' base64, qui encode le hachage 128 bits de l' MD5, est utilisé comme contrôle d'intégrité pour 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.
<RestoreRequest>
    <Days>{integer}</Days>
    <GlacierJobParameters>
        <Tier>Bulk</Tier>
    </GlacierJobParameters>
</RestoreRequest>

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

Mise à jour des métadonnées

Il existe deux manières de mettre à jour les métadonnées sur un objet existant :

  • Exécuter une demande PUT avec les nouvelles métadonnées et le contenu de l'objet d'origine
  • Exécuter une demande COPY avec les nouvelles métadonnées en spécifiant l'objet d'origine comme source de la copie

Toutes les clés de métadonnées doivent comporter le préfixe x-amz-meta-.

Utilisation de PUT pour mettre à jour les métadonnées

La PUT demande nécessite une copie de l'objet existant, car le contenu est écrasé.

Syntaxe

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

Exemple de demande

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

Content-Length: 533

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

Exemple de demande

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

Content-Length: 533

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

Exemple de réponse

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

Utilisation de COPY pour mettre à jour les métadonnées

Les détails complets de la demande COPY sont ici.

Syntaxe

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

Exemple de demande

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

Exemple de demande

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

Exemple de réponse

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

Etapes suivantes

Pour en savoir plus sur les opérations de compartiment, consultez la documentation.