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.
| 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ê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ê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ê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 | 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 :
| 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 :
| 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
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 :
- L'envoi par téléchargement est initié et une valeur
UploadIdest créée. - Des parties individuelles sont envoyées par téléchargement en spécifiant leurs numéros séquentiels et la valeur
UploadIdpour l'objet. - Une fois le téléchargement des parties terminé, l'envoi par téléchargement est achevé en envoyant une demande avec la valeur
UploadIdet un bloc XML qui recense chaque numéro de partie et sa valeurEtagrespective.
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ê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ê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è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 | 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 :
| 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ê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
PUTavec les nouvelles métadonnées et le contenu de l'objet d'origine - Exécuter une demande
COPYavec 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.