2022-10-18 23:08 Temps de lecture : 14 min

9 commandes AWS S3 avec des exemples pour gérer le compartiment et les données

La gestion et la supervision de données peuvent s'avérer complexes. Ces instructions AWS S3 vous apporteront une aide précieuse pour administrer vos conteneurs et vos données AWS S3 de manière rapide et efficace.

AWS S3 est le service de stockage d'objets fourni par Amazon Web Services. Il s'agit du service de stockage le plus largement utilisé d'AWS, capable de contenir une quantité pratiquement illimitée de données. Il présente une haute disponibilité, une grande durabilité et une intégration aisée avec de nombreux autres services AWS.

AWS S3 trouve son utilité dans divers contextes, tels que le stockage d'applications mobiles ou web, la conservation de vastes ensembles de données, le stockage de données pour l'apprentissage automatique, l'hébergement de sites web statiques et bien plus encore.

Si vous avez déjà travaillé avec S3 dans le cadre de vos projets, vous êtes probablement conscient que la gestion d'une multitude de conteneurs et de téraoctets de données qu'ils contiennent peut s'avérer une tâche ardue, compte tenu de l'importante capacité de stockage disponible. Voici une liste de commandes AWS S3, accompagnées d'exemples, qui vous permettront de gérer vos conteneurs et données AWS S3 avec une efficacité accrue.

Configuration de l'interface de ligne de commande AWS

Après avoir téléchargé et installé l'interface de ligne de commande AWS (AWS CLI), il est nécessaire de configurer les informations d'identification AWS pour accéder à votre compte et aux services AWS. Examinons rapidement comment configurer l'AWS CLI.

La première étape consiste à créer un utilisateur ayant un accès par programmation au compte AWS. Veillez à cocher la case appropriée lors de la création de l'utilisateur pour l'AWS CLI.

Après avoir accordé les autorisations nécessaires, créez l'utilisateur. Sur l'écran final, une fois l'utilisateur créé, copiez l'ID de la clé d'accès et la clé d'accès secrète qui lui sont associées. Ces informations d'identification seront utilisées pour la connexion via l'AWS CLI.

Ouvrez ensuite votre terminal et entrez la commande suivante :

aws configure 

Saisissez l'ID de la clé d'accès et la clé d'accès secrète lorsque vous y êtes invité. Indiquez la région AWS de votre choix ainsi que le format de sortie des commandes. Personnellement, je recommande le format JSON, bien qu'il soit toujours possible de modifier ces valeurs ultérieurement.

Vous pouvez désormais exécuter toute commande AWS CLI dans la console. Passons maintenant aux commandes AWS S3.

cp

La commande cp permet de copier des données vers et depuis les conteneurs S3. Elle peut servir à copier des fichiers d'un emplacement local vers S3, de S3 vers un emplacement local, ou encore entre deux conteneurs S3. De nombreux paramètres additionnels peuvent être associés à ces commandes.

Par exemple, le paramètre --dryrun pour tester la commande, le paramètre --storage-class pour définir la classe de stockage de vos données dans S3, ainsi que des paramètres pour configurer le chiffrement, entre autres. La commande cp vous offre une maîtrise totale sur la manière dont vous configurez la sécurité de vos données dans S3.

Utilisation

aws s3 cp <SOURCE> <DESTINATION> [--options]

Exemples

Copier des données du local vers S3

aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt

Copier des données de S3 vers le local

aws s3 cp s3://bucket_name/file_name_2.txt file_name.txt

Copier des données entre des conteneurs S3

aws s3 cp s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

Copier des données du local vers S3 - IA

aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA 

Copier tous les fichiers d'un répertoire local vers S3

aws s3 cp ./local_folder s3://bucket_name --recursive

ls

La commande ls sert à afficher les conteneurs ou leur contenu. Si vous souhaitez simplement visualiser des informations sur vos conteneurs ou les données qu'ils contiennent, vous pouvez recourir à la commande ls.

Utilisation :

aws s3 ls NONE or <BUCKET_NAME> [--options]

Exemples

Lister tous les conteneurs du compte

aws s3 ls

Output:
2022-02-02 18:20:14 BUCKET_NAME_1
2022-03-20 13:12:43 BUCKET_NAME_2
2022-03-29 10:52:33 BUCKET_NAME_3

Cette instruction affiche tous les conteneurs de votre compte, avec leur date de création.

Lister tous les objets de premier niveau dans un conteneur

aws s3 ls BUCKET_NAME_1 or s3://BUCKET_NAME_1 

Output:
                           PRE samplePrefix/
2021-12-09 12:23:20       8754 file_1.png
2021-12-09 12:23:21       1290 file_2.json
2021-12-09 12:23:21       3088 file_3.html

Cette commande affiche tous les objets de premier niveau d'un conteneur S3. Notez que les objets ayant le préfixe samplePrefix/ ne sont pas inclus, seuls les objets de niveau supérieur sont affichés.

Lister tous les objets d'un conteneur

aws s3 ls BUCKET_NAME_1 or s3://BUCKET_NAME_1 --recursive

Output:
2021-12-09 12:23:20       8754 file_1.png
2021-12-09 12:23:21       1290 file_2.json
2021-12-09 12:23:21       3088 file_3.html
2021-12-09 12:23:20      16328 samplePrefix/file_1.txt
2021-12-09 12:23:20      29325 samplePrefix/sampleSubPrefix/file_1.css

Cette commande liste tous les objets d'un conteneur S3. Notez que les objets ayant le préfixe samplePrefix/, ainsi que tous les sous-préfixes, sont également affichés.

mb

La commande mb sert simplement à créer de nouveaux conteneurs S3. Cette commande est simple, mais pour créer un nouveau conteneur, son nom doit être unique parmi tous les conteneurs S3.

Utilisation

aws s3 mb <BUCKET_NAME>

Exemple

Créer un nouveau conteneur dans une région spécifique

aws s3 mb myUniqueBucketName --region eu-west-1

mv

La commande mv permet de déplacer des données vers et depuis des conteneurs S3. À l'instar de la commande cp, la commande mv est employée pour déplacer des données d'un emplacement local vers S3, de S3 vers un emplacement local, ou encore entre deux conteneurs S3.

La principale différence entre les commandes mv et cp réside dans le fait que, lors de l'utilisation de la commande mv, le fichier est supprimé de la source. AWS transfère alors ce fichier vers la destination. De nombreuses options peuvent être spécifiées avec cette commande.

Utilisation

aws s3 mv <SOURCE> <DESTINATION> [--options]

Exemples

Déplacer des données du local vers S3

aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt

Déplacer des données de S3 vers le local

aws s3 mv s3://bucket_name/file_name_2.txt file_name.txt

Déplacer des données entre des conteneurs S3

aws s3 mv s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

Déplacer des données du local vers S3 - IA

aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA 

Déplacer tous les fichiers d'un préfixe dans S3 vers un répertoire local.

aws s3 mv s3://bucket_name/somePrefix ./localFolder --recursive

presign

La commande presign génère une URL pré-signée pour une clé dans le conteneur S3. Cette instruction sert à créer des URL pouvant être utilisées par d'autres personnes pour accéder à un fichier dans la clé de conteneur S3 spécifiée.

Utilisation

aws s3 presign <OBJECT_KEY> --expires-in <TIME_IN_SECONDS>

Exemple

Générer une URL pré-signée valable pendant 1 heure pour un objet du conteneur.

aws s3 presign s3://bucket_name/samplePrefix/file_name.png --expires-in 3600

Output:
https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/file_name.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW%2F20220314%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20220314T054113Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13a33debd3db1be96

rb

La commande rb permet simplement de supprimer des conteneurs S3.

Utilisation

aws rb <BUCKET_NAME>

Exemple

Supprimer un conteneur S3.

aws s3 mb myBucketName
# Cette commande échoue si le conteneur contient des données.

Supprimer un conteneur S3 ainsi que les données qu'il contient.

aws s3 mb myBucketName --force

rm

La commande rm sert uniquement à supprimer des objets dans les conteneurs S3.

Utilisation

aws s3 rm <S3Uri_To_The_File>

Exemples

Supprimer un fichier d'un conteneur S3.

aws s3 rm s3://bucket_name/sample_prefix/file_name_2.txt

Supprimer tous les fichiers ayant un préfixe spécifique dans un conteneur S3.

aws s3 rm s3://bucket_name/sample_prefix --recursive

Supprimer tous les fichiers d'un conteneur S3.

aws s3 rm s3://bucket_name --recursive

sync

La commande sync copie et met à jour les fichiers de la source vers la destination, à l'image de la commande cp. Il est essentiel de comprendre la différence entre les commandes cp et sync. En utilisant cp, les données sont copiées de la source vers la destination même si elles y sont déjà présentes.

De même, les fichiers ne sont pas supprimés de la destination s'ils ont été supprimés de la source. En revanche, la commande sync analyse la destination avant de copier les données et ne copie que les fichiers nouveaux ou mis à jour. La commande sync peut être comparée à la validation et à l'envoi de modifications vers une branche distante dans git. La commande sync propose de nombreuses options pour personnaliser son comportement.

Utilisation

aws s3 sync <SOURCE> <DESTINATION> [--options]

Exemples

Synchroniser le répertoire local avec S3

aws s3 sync ./local_folder s3://bucket_name

Synchroniser les données S3 vers un répertoire local

aws s3 sync s3://bucket_name ./local_folder

Synchroniser les données entre deux conteneurs S3

aws s3 sync s3://bucket_name s3://bucket_name_2

Déplacer les données entre deux conteneurs S3 en excluant tous les fichiers .txt

aws s3 sync s3://bucket_name s3://bucket_name_2 --exclude "*.txt

website

Les conteneurs S3 peuvent être utilisés pour héberger des sites web statiques. La commande website sert à configurer l'hébergement de sites web statiques S3 pour votre conteneur.

Vous indiquez l'index et les fichiers d'erreur, et S3 vous fournit une URL permettant d'afficher le fichier.

Utilisation

aws s3 website <S3_URI> [--options]

Exemple :

Configurer l'hébergement statique pour un conteneur S3 et indiquer les fichiers d'index et d'erreur

aws s3 website s3://bucket_name --index-document index.html --error-document error.html

Conclusion

J'espère que cet article vous a permis de vous familiariser avec certaines des commandes AWS S3 les plus utilisées pour la gestion des conteneurs. Si vous souhaitez approfondir le sujet, vous pouvez consulter les détails de la certification AWS.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.