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.