Préambule

Afin d'automatiser vos opérations sur le Public Cloud, il est possible d'utiliser les API d'OpenStack afin de générer différents scripts.
Le client Swift d'OpenStack vous permettra d’interagir et de gérer vos conteneurs et vos objets.

Vous pourrez par exemple envoyer des fichiers de manière régulière vers vos conteneurs afin de le sauvegarder.

Ce guide vous aidera à prendre en main les API OpenStack afin de gérer vos conteneurs d'objets à l'aide du client Python Swfit.
.

Documentation Swift

Il est possible d'obtenir la liste des commandes possible en lisant la documentation du client :

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

Voici la liste des commandes principales :

delete Supprime un conteneur ou les objets présents dans un conteneur
download Télécharge les fichiers d'un conteneur
list Liste les conteneurs du compte ou les objets d'un conteneur
post Met à jour les metadata pour le compte, conteneur ou objet. Crée un conteneur si non existant
stat Affiche les informations du compte, conteneur ou objet
upload Envoi des fichiers ou dossiers vers le conteneur
capabilities Liste les capacités de l'environnement Swift
tempurl Crée une URL temporaire
Il est ensuite possible d'obtenir de l'aide pour une commande particulière en ajoutant "--help" a la fin de celle ci :

admin@serveur-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.
[...]
Il est aussi possible d'avoir la documentation du client Swift directement sur le site Openstack

Opérations basiques

.

Création d'un conteneur d'objet public

  • Créer le conteneur "container1"

  • admin@serveur-1:~$ swift post container1

  • Configurer les droits d’accès pour le rendre public

  • admin@serveur-1:~$ swift post --header  "X-Container-Read: .r:*" container1

  • Vérifier la configuration du conteneur

  • admin@serveur-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 fichier vers un conteneur

  • Envoyer le contenu d'un dossier local vers un conteneur

  • admin@serveur-1:~$ swift upload container1 images/
    
    images/OVHlogo.png
    images/OVHSummitKeynote.jpg
Un préfixe sera automatiquement ajouté a vos fichiers si vous envoyez un dossier complet et non un fichier seul.
  • Lister les fichiers du conteneur

  • admin@serveur-1:~$ swift list container1
    
    images/OVHSummitKeynote.jpg
    images/OVHlogo.png
    text1.txt
    text2.txt
    text3.txt
Il est possible d'afficher les fichiers disposant d'un préfixe particulier grâce a l'argument "--prefix" :

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

images/OVHSummitKeynote.jpg
images/OVHlogo.png
Étant donné que le conteneur a été configuré pour être accessible de manière publique, il est possible d'accéder au fichier grâce a une URL :
https://storage.gra1.cloud.ovh.net/v1/AUTH_b3e26xxxxxxxxxxxxxxxxxxxb0ba29/container1/images/OVHlogo.png
Cette URL est simplement formé du point d'accés API de l'Object Storage que vous pouvez récupéré dans le menu Accès et Sécurité dans Horizon ainsi que du nom de votre conteneur et du nom de votre objet (préfixe compris).
.

Téléchargement de fichiers

  • Télécharger un fichier :

  • admin@serveur-1:~$ swift download container1 text1.txt
    
    text1.txt [auth 0.328s, headers 0.452s, total 0.453s, 0.000 MB/s]
Il est possible de télécharger plusieurs fichiers ayant le même préfixe grâce a la commande suivante :

admin@serveur-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 objets

  • Supprimer un fichier :

  • admin@serveur-1:~$ swift delete container1 text1.txt
    
    text1.txt
Comme pour le téléchargement, il est possible de supprimer plusieurs fichiers ayant le même préfixe grâce a la commande suivante :
admin@serveur-1:~$ swift delete container1 images/*

images/OVHSummitKeynote.jpg
images/OVHlogo.png
  • Supprimer un conteneur

  • admin@serveur-1:~$ swift delete container1
    
    text2.txt
    text3.txt
Cela supprimera évidemment tout les fichiers se trouvant dans le conteneur.

Retour à l'index