Utilisation service stockage objet – s3cmd

Présentation

S3cmd est un logiciel libre (licence GNU GPL) développé par TGRMN Software pour permettre l’utilisation des services AWS à travers des commandes dans un terminal (shell Linux ou Terminal sous OSX).

Similaire à AWS CLI, S3cmd est cependant très limité sur l’aspect IAM (identités et autorisations). Il permet de s’affranchir de la complexité de l’API S3 pour manipuler compartiments et objets.

Il propose notamment une fonctionnalité de synchronisation de répertoire vers/depuis le stockage S3.

Configuration

Prérequis :

·        Avoir installé la version actuelle de S3cmd (sous Linux et macOS)

–         voir https://s3tools.org/download+et+https://github.com/s3tools/s3cmd/blob/master/INSTALL.md


Procédure minimale de configuration :

  •   Ouvrir une fenêtre de commande
  • Exécuter la commande s3cmd –configure et entrer :
    •  La clé d’accès pour Access Key
    • La clé secrète pour Secret Access Key
    • EU pour Default region
    • Le hostname pour S3 Endpoint (voir l’url du point de terminaison de service).
    • « %(bucket)s.hostname » pour DNS-style bucket+hostname (cf. ligne précédente)
    • Valider (ne rien saisir) pour Encryption password
    • Valider (ne rien saisir) pour Path to GPG program
    • Valider pour Use HTTPS protocol (Yes par défaut)
    • Valider (ne rien saisir) pour HTTP Proxy server name
    • Valider (ne rien saisir) pour Test access with supplied credentials (Y)
  •  Après le message “Success. Your access key and secret key worked fine”, entrer : y pour Sauvegarder la configuration (No par défaut)

NB : l’utilisation de la région EU ne signifie pas que vos données sont localisées hors de France; les données Cloud Avenue sont effectivement stockées en France métropolitaine.

Exemples d’utilisation

Dans les exemples suivants, url représente le hostname de votre point de terminaison de service accessible en HTTPS, il vaut faudra le modifier en fonction de votre point de terminaison (voir vos informations de connexion).

Les exemples correspondent à des cas d’usage simples (gestion des compartiments et des objets).

Compartiment (bucket)

Lister les compartiments :

Dans l’exemple, 2 compartiments existent (comp1 et comp2).

Lister le contenu d’un compartiment :

Dans l’exemple, le compartiment comp1 contient 3 fichiers et un dossier (ou préfixe) nommé backup. Le contenu du dossier n’est pas listé ici.

Lister récursivement le contenu d’un compartiment :

Dans l’exemple, le compartiment comp1 contient 4 fichiers dont 1 est présent dans un dossier nommé backup. L’option –recursive permet de lister l’intégralité des objets y compris en parcourant les dossiers (ou préfixes).

Créer un compartiment :

Dans l’exemple, le compartiment vide comp3 est supprimé.

Supprimer un compartiment contenant au moins un objet :

Dans l’exemple, le compartiment comp2 n’est pas vide; l’option –recursive est utilisée pour supprimer automatiquement tous les objets et dossiers présents.

Objet (object)

Copier un objet dans un compartiment :

Dans l’exemple, le fichier local est copié (uploadé) dans le compartiment comp3.

Copier un objet dans un dossier :

Dans l’exemple, le dossier documentation est créé s’il n’existe pas déjà dans le compartiment, puis le fichier local est copié (uploadé) dans le dossier.

Renommer un objet :

Dans l’exemple, le fichier fic2.txt est renommé en fic2bis.txt.

Déplacer un objet :

Déplacer un objet en le renommant :

Effacer un objet :

Dans l’exemple, l’objet est supprimé; le dossier (ou préfixe) documentation est vide; il est supprimé automatiquement.

Effacer un dossier (ou préfixe) :

Dans l’exemple, l’effacement porte sur le dossier; l’option –recursive provoque l’effacement de tous les objets présents.