cURL : Utiliser le Stockage Objet

Retrouvez ci-dessous quelques exemples d’appels vers l’API du service de contrôle d’accès et l’API du service de stockage objet.

Pour obtenir une liste complète des appels, consultez notre documentation.

Utilisez l’API pour créer un conteneur :

$ curl -X PUT -i https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur?format=json -H "X-Auth-Token:<token>"

Exemple de résultat :

HTTP/1.1 201 Created
Date: Thu, 10 Jul 2014 13:21:32 GMT
Content-Length: 0
Content-Type: text/html; charset=UTF-8
X-Trans-Id: tx6078ae05a59844738e1b4-0053be935c



Utilisez l’API pour passer un conteneur en public :

$ curl -X PUT -i https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur -H "X-Auth-Token:<token>" -H "X-Container-Read: .r:*"

Exemple de résultat :

HTTP/1.1 202 Accepted
Date: Thu, 10 Jul 2014 13:29:40 GMT
Content-Length: 76
Content-Type: text/html; charset=UTF-8
X-Trans-Id: tx94979cf9e7f04a4e96773-0053be9544

<html><h1>Accepted</h1><p>The request is accepted for processing.</p></html>

Pour repasser le conteneur en privé :

$ curl -X PUT -i https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur -H "X-Auth-Token:<token>" -H "X-Container-Read: x"

Exemple de résultat :

HTTP/1.1 202 Accepted
Date: Thu, 10 Jul 2014 13:35:14 GMT
Content-Length: 76
Content-Type: text/html; charset=UTF-8
X-Trans-Id: tx31860ce55d4345c996855-0053be9692

<html><h1>Accepted</h1><p>The request is accepted for processing.</p></html>f



Utilisez l’API pour téléverser un fichier dans un conteneur :

$ curl -i -T ./test.txt https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ -X PUT -H "X-Auth-Token:<token>"

Exemple de résultat :

HTTP/1.1 100 Continue

HTTP/1.1 100 Continue

HTTP/1.1 201 Created
Date: Thu, 10 Jul 2014 13:39:27 GMT
Last-Modified: Thu, 10 Jul 2014 13:39:28 GMT
Content-Length: 0
Etag: 8d40d5434f70488dd462242c5bfc08ae
Content-Type: text/html; charset=UTF-8
X-Trans-Id: tx996a50b9f61241eba4ebe-0053be978f



Utilisez l’API pour téléverser un fichier en le segmentant dans un conteneur :

Si vous souhaitez téléverser des gros fichiers vous pouvez les ségmenter en plusieurs petits fichiers.

Pour les téléverser nous allons devoir procéder en plusieurs étapes. Pour commencer nous devons commencer par ségmenter le fichier en plusieurs éléments puis les téléverser dans le conteneur. Nous allons enfin générer un manifeste.

Dans notre exemple nous allons utiliser une image ISO de 970 Mo que nous allons ségmenter en 10 fichiers de 100 Mo.

Pour diviser le fichier sous Windows vous pouvez utiliser le logiciel 7-Zip.

Sous linux, vous pouvez utiliser la commande :

$ split -b 104857600 -d ubuntu-14.04-desktop-i386.iso ubuntu-14.04-desktop-i386.iso-

Maintenant nous allons téléverser les fichiers un par un :

curl -X PUT -i -H "X-Auth-Token:<token>" -T ubuntu-14.04-desktop-i386.iso-00 https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso-00
curl -X PUT -i -H "X-Auth-Token:<token>" -T ubuntu-14.04-desktop-i386.iso-01 https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso-01
curl -X PUT -i -H "X-Auth-Token:<token>" -T ubuntu-14.04-desktop-i386.iso-02 https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso-02
curl -X PUT -i -H "X-Auth-Token:<token>" -T ubuntu-14.04-desktop-i386.iso-03 https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso-03
curl -X PUT -i -H "X-Auth-Token:<token>" -T ubuntu-14.04-desktop-i386.iso-04 https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso-04
curl -X PUT -i -H "X-Auth-Token:<token>" -T ubuntu-14.04-desktop-i386.iso-05 https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso-05
curl -X PUT -i -H "X-Auth-Token:<token>" -T ubuntu-14.04-desktop-i386.iso-06 https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso-06
curl -X PUT -i -H "X-Auth-Token:<token>" -T ubuntu-14.04-desktop-i386.iso-07 https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso-07
curl -X PUT -i -H "X-Auth-Token:<token>" -T ubuntu-14.04-desktop-i386.iso-08 https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso-08
curl -X PUT -i -H "X-Auth-Token:<token>" -T ubuntu-14.04-desktop-i386.iso-09 https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso-09

Nous allons maintenant générer le fichier manifeste dans lequel sera listé tous les segments et qui permettra de récupérer le fichier en directement reconstitué :

curl -X PUT -H "X-Auth-Token:<token>" -H "X-Object-Manifest: monConteneur/ubuntu-14.04-desktop-i386.iso-" https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso -H "Content-Length: 0"

Si on lance la commande :

$ curl -X HEAD -i https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/ubuntu-14.04-desktop-i386.iso -H "X-Auth-Token:<token>"

On obtient le résultat suivant :

HTTP/1.1 200 OK
Date: Thu, 10 Jul 2014 17:38:22 GMT
Content-Length: 1017118720
Accept-Ranges: bytes
X-Object-Manifest: monConteneur/ubuntu-14.04-desktop-i386.iso-
Last-Modified: Thu, 10 Jul 2014 17:32:53 GMT
Etag: "f7dabb29f8cc43c660e86ca12979922d"
X-Timestamp: 1405013653.78971
Content-Type: application/x-iso9660-image
X-Trans-Id: tx0f226ac1acc74660b2cdc-0053becf8e

Le “Content-Length” correspond à la taille totale des 9 fichiers ( 1017118720 bytes = 970 Mo). Si on tente de télécharger le fichier, on va télécharger directement le fichier reconstitué et non pas les 9 segments.



Utilisez l’API pour lister les fichier dans un conteneur :

$ curl -i https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur?format=json -X GET -H "X-Auth-Token:<token>"

Exemple de résultat :

HTTP/1.1 200 OK
Date: Thu, 10 Jul 2014 17:50:12 GMT
Content-Length: 2359
X-Container-Object-Count: 12
Accept-Ranges: bytes
X-Timestamp: 1404978533.26137
X-Container-Read: x
X-Container-Bytes-Used: 1017118734
Content-Type: application/json; charset=utf-8
X-Trans-Id: txb635dcc4211f49c4bf3fe-0053bed254

[{
  "hash": "8d40d5434f70488dd462242c5bfc08ae", 
  "last_modified": "2014-07-10T13:39:27.734430", 
  "bytes": 14, "name": "test.txt", 
  "content_type": "text/plain"}]



Utilisez l’API pour télécharger un fichier depuis un conteneur :

$ curl -X GET -H "X-Auth-Token:<token>" https://storage.fr1.cloudwatt.com/v1/AUTH_<Tenant id>/monConteneur/test.txt > test.txt

Exemple de résultat :

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    14  100    14    0     0    167      0 --:--:-- --:--:-- --:--:--   168