Object Storage Swift - "Débuter avec l’API Swift"

Base de connaissances

Object Storage Swift - "Débuter avec l’API Swift"


Icons/System/eye-open Created with Sketch. 4795 vues 25.05.2021 Cloud / Object Storage S3

Objectif

Vous pouvez utiliser l'API OpenStack pour générer divers scripts afin d'automatiser vos actions sur vos instances Public Cloud.

Le swiftclient OpenStack vous permet d'interagir avec vos conteneurs et objets et de les gérer. Vous pourrez par exemple envoyer des fichiers de manière régulière vers vos conteneurs afin de les sauvegarder.

Ce guide vous aidera à vous familiariser avec l'API OpenStack afin de gérer vos conteneurs d'objets à l'aide de python-swiftclient.

Prérequis

En pratique

Veuillez noter que les instructions suivantes concernent uniquement l'interface de ligne de commande d'une distribution GNU/Linux, après avoir mis en oeuvre les prérequis ci-dessus.

Documentation Swift

Vous pouvez récupérer la liste des commandes possibles dans la documentation du client :

admin@server-1:~$ swift --help

Voici la liste des commandes principales :

CommandeDescription
deleteSupprime un conteneur ou les objets présents dans un conteneur
downloadTélécharge des objets à partir de conteneurs
listRépertorie les conteneurs d'un compte ou les objets d'un conteneur
postMet à jour les métadonnées du compte, du conteneur ou de l'objet. Si le conteneur est introuvable, il sera créé automatiquement.
statAffiche les informations relatives au compte, au conteneur ou à l'objet.
uploadTélécharge les fichiers et répertoires spécifiés vers le conteneur donné.
capabilitiesExtrait la capacité du proxy.
tempurlGénère une URL temporaire pour un objet Swift.

Pour obtenir plus de d'explications sur une commande Swift spécifique, ajoutez --help à la fin de celle-ci :

admin@server-1:~$ swift post --help

Updates meta information for the account, container, or object.
If the container is not found, it will be created automatically.

Positional arguments:
[container] Name of container to post to.
[object] Name of object to post. Specify multiple times
for multiple objects.
[...]

Vous pouvez également consulter la documentation de Swift disponible sur le site OpenStack.

Création d'un conteneur d'objet public

  • Créez le conteneur « container1 » :
admin@server-1:~$ swift post container1
  • Configurez les droits d'accès pour rendre votre conteneur public :
admin@server-1:~$ swift post --header "X-Container-Read: .r:*" container1
  • Vérifiez la configuration du conteneur :
admin@server-1:~$ swift stat container1

Account: AUTH_b3e26xxxxxxxxxxxxxxxxxxxb0ba29
Container: container1
Objects: 0
Bytes: 0
Read ACL: .r:*
Write ACL:
Sync To:
Sync Key:
Accept-Ranges: bytes
X-Trans-Id: B2210C05:8D93_052711A1:01BB_561CC9DF_1B305:30D7
X-Storage-Policy: Policy-0
Connection: close
X-Timestamp: 1444726875.27475
Content-Type: text/plain; charset=utf-8

Envoi de fichiers dans votre conteneur

  • Téléversez le contenu d'un dossier local dans un conteneur :
admin@server-1:~$ swift upload container1 images/

images/OVHlogo.png
images/OVHSummitKeynote.jpg

Un préfixe sera automatiquement ajouté à vos fichiers si vous envoyez un dossier entier au lieu d'un seul fichier.

  • Lister les fichiers d'un conteneur :
admin@server-1:~$ swift list container1

images/OVHSummitKeynote.jpg
images/OVHlogo.png
text1.txt
text2.txt
text3.txt

Il est possible d'afficher les fichiers ayant un préfixe particulier grâce à l'argument --prefix :

admin@server-1:~$ swift list container1 --prefix images

images/OVHSummitKeynote.jpg
images/OVHlogo.png

Si le conteneur est configuré comme public, vous pouvez accéder au fichier à l'aide d'une URL :

https://storage.gra1.cloud.ovh.net/v1/AUTH_b3e26xxxxxxxxxxxxxxxxxxxb0ba29/container1/images/OVHlogo.png

Cette URL est composée d'un point de terminaison, disponible à partir de l'interface Horizon, du nom de votre conteneur et du nom de votre objet (y compris le préfixe).

Téléchargement de fichiers

  • Télécharger un fichier :
admin@server-1:~$ swift download container1 text1.txt

text1.txt [auth 0.328s, headers 0.452s, total 0.453s, 0.000 MB/s]

Vous pouvez télécharger plusieurs fichiers ayant le même préfixe grâce à la commande suivante :

admin@server-1:~$ swift download container1 --prefix images

images/OVHlogo.png [auth 0.383s, headers 0.520s, total 0.522s, 0.135 MB/s]
images/OVHSummitKeynote.jpg [auth 0.371s, headers 0.514s, total 0.559s, 2.657 MB/s]

Suppression de conteneurs ou d'objets

  • Supprimer un fichier :
admin@server-1:~$ swift delete container1 text1.txt

text1.txt

Comme pour le téléchargement, vous pouvez supprimer plusieurs fichiers ayant le même préfixe, via la commande suivante :

admin@server-1:~$ swift delete container1 images/*

images/OVHSummitKeynote.jpg
images/OVHlogo.png
  • Supprimer un conteneur :
admin@server-1:~$ swift delete container1

text2.txt
text3.txt

Cette opération supprimera tous les fichiers du conteneur.

Aller plus loin

Échangez avec notre communauté d'utilisateurs.

Articles associés