Cette documentation concerne uniquement la version 1 de l’AWS CLI. Pour la documentation relative à la version 2 de l’AWS CLI, consultez le Guide de l’utilisateur de la version 2.
Utilisation des commandes (s3) de haut niveau dans l’AWS CLI
Cette rubrique décrit certaines des commandes que vous pouvez utiliser pour gérer les compartiments et les objets Amazon S3 à l’aide des commandes aws
s3 de l’AWS CLI. Pour les commandes non abordées dans cette rubrique et pour des exemples de commandes supplémentaires, consultez les commandes aws
s3 dans la Référence de l’AWS CLI.
Les commandes de haut niveau aws s3 simplifient la gestion des objets Amazon S3. Ces commandes vous permettent de gérer le contenu d’Amazon S3 en lui-même et avec les annuaires locaux.
Rubriques
Prérequis
Pour exécuter les commandes s3, vous devez respecter les conditions requises suivantes :
Installez et configurez l’AWS CLI. Pour plus d’informations, consultez Installation, mise à jour et désinstallation de l’ AWS CLI et Authentification et informations d’identification d’accès pour l’AWS CLI.
-
Le profil que vous utilisez doit disposer d’autorisations permettant les opérations AWS effectuées dans les exemples.
-
Maîtrisez les termes Amazon S3 suivants :
-
Compartiment : dossier Amazon S3 de haut niveau.
-
Préfixe : dossier Amazon S3 dans un compartiment.
-
Objet : tout élément hébergé dans un compartiment Amazon S3.
-
Avant de commencer
Cette section décrit quelques points à prendre en compte avant d’utiliser des commandes aws s3.
Chargement d’objets volumineux
Lorsque vous utilisez des commandes aws s3 pour charger des objets volumineux dans un compartiment Amazon S3, AWS CLI effectue automatiquement un chargement partitionné. Vous ne pouvez pas reprendre un chargement qui échoue à l’aide de ces commandes aws s3.
Si le chargement partitionné échoue en raison d’un délai d’expiration, ou si vous l’avez annulé manuellement dans l’AWS CLI, l’AWS CLI arrête le chargement et nettoie les fichiers créés. Ce processus peut prendre plusieurs minutes.
Si le processus de chargement ou de nettoyage partitionné est annulé en raison d’une commande d’arrêt ou d’une défaillance du système, les fichiers créés restent dans le compartiment Amazon S3. Pour nettoyer le chargement partitionné, utilisez la commande s3api abort-multipart-upload.
Propriétés des fichiers et balises dans les copies partitionnées
Lorsque vous utilisez les commandes de la version 1 de l’AWS CLI dans l’espace de noms aws s3 pour copier un fichier d’un emplacement de compartiment S3 vers un autre emplacement de compartiment S3, et que cette opération utilise la copie partitionnée, aucune propriété de fichier de l’objet source n’est copiée vers l’objet de destination.
Création d’un compartiment
Utilisez la commande s3
mb pour créer un compartiment. Les noms de compartiment doivent être globalement uniques (dans tout Amazon S3) et conformes à DNS.
Les noms de compartiment peuvent contenir des lettres minuscules, des chiffres, des traits d’union et des points. Les noms de compartiment peuvent uniquement commencer et se terminer par une lettre ou un chiffre, et ils ne peuvent pas contenir de point à la suite d’un tiret ou d’un autre point.
Syntaxe
$aws s3 mb <target> [--options]
L’exemple suivant crée le compartiment s3://amzn-s3-demo-bucket.
$aws s3 mb s3://amzn-s3-demo-bucket
Affichage de la liste des compartiments et des objets
Pour répertorier les compartiments, dossiers ou objets, utilisez la commande s3
ls. L’utilisation de la commande sans cible ni options permet de répertorier tous les compartiments.
Syntaxe
$aws s3 ls <target> [--options]
Pour voir quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultez Options fréquemment utilisées pour les commandes s3. Pour obtenir la liste complète des options disponibles, consultez s3
ls dans la Référence des commandes de l’AWS CLI.
L’exemple suivant répertorie tous les compartiments Amazon S3.
$aws s3 ls2018-12-11 17:08:50 amzn-s3-demo-bucket1 2018-12-14 14:55:44 amzn-s3-demo-bucket2
La commande suivante affiche la liste de tous les objets et préfixes d’un compartiment. Dans cet exemple de sortie, le préfixe example/ possède un fichier nommé MyFile1.txt.
$aws s3 lss3://amzn-s3-demo-bucketPRE example/ 2018-12-04 19:05:48 3 MyFile1.txt
Vous pouvez filtrer la sortie vers un préfixe spécifique en l’incluant dans la commande. La commande suivante permet d’afficher la liste des objets dans nom-compartiment/exemple/ (en d’autres termes, les objets dans nom-compartiment filtrés par le préfixe exemple/).
$aws s3 lss3://amzn-s3-demo-bucket/example/2018-12-06 18:59:32 3 MyFile1.txt
Pour afficher uniquement les compartiments et les objets d’une région spécifique, utilisez les options --region
$aws s3 ls--region us-east-22018-12-06 18:59:32 3 MyFile1.txt
Si vous disposez d’une longue liste de compartiments et d’objets, vous pouvez paginer les résultats à l’aide des options --max-items ou --page-size. L’option --max-items limite le nombre total de compartiments et d’objets renvoyés lors d’un appel et l’option --page-size limite le nombre d’objets répertoriés sur une page.
$aws s3 ls--max-items 100 --page-size 10
Pour plus d’informations sur la pagination, consultez Utilisation du paramètre --page-size et Utilisation du paramètre --max-items.
Suppression de compartiments
Pour supprimer un compartiment, utilisez la commande s3
rb.
Syntaxe
$aws s3 rb <target> [--options]
L’exemple suivant supprime le compartiment s3://amzn-s3-demo-bucket.
$aws s3 rbs3://amzn-s3-demo-bucket
Par défaut, le compartiment doit être vide pour que l’opération aboutisse. Pour supprimer un compartiment non vide, vous devez inclure l’option --force. Si vous utilisez un compartiment avec gestion des versions qui contient des objets précédemment supprimés, mais conservés, cette commande ne vous permet pas de supprimer le compartiment. Vous devez d’abord supprimer tout le contenu.
L’exemple suivant supprime tous les objets et préfixes du compartiment, puis supprime le compartiment lui-même.
$aws s3 rbs3://amzn-s3-demo-bucket--force
Suppression d’objets
Pour supprimer des objets dans un compartiment ou dans votre répertoire local, utilisez la commande s3
rm.
Syntaxe
$aws s3 rm <target> [--options]
Pour voir quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultez Options fréquemment utilisées pour les commandes s3. Pour obtenir la liste complète des options, consultez s3
rm dans la Référence des commandes de l’AWS CLI.
L’exemple suivant supprime filename.txt de s3://amzn-s3-demo-bucket/example.
$aws s3 rm s3://amzn-s3-demo-bucket/example/filename.txt
L’exemple suivant supprime tous les objets de s3://amzn-s3-demo-bucket/example à l’aide de l’option --recursive.
$aws s3 rm s3://amzn-s3-demo-bucket/example --recursive
Déplacement d’objets
Utilisez la commande s3
mv pour déplacer des objets depuis compartiment ou un répertoire local. La commande s3 mv copie l’objet ou le fichier source vers la destination spécifiée, puis supprime l’objet ou le fichier source.
Syntaxe
$aws s3 mv <source> <target> [--options]
Pour voir quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultez Options fréquemment utilisées pour les commandes s3. Pour obtenir la liste complète des options disponibles, consultez s3
mv dans la Référence des commandes de l’AWS CLI.
Avertissement
Si vous utilisez n’importe quel type d’ARN ou d’alias de point d’accès dans vos URI source ou de destination Amazon S3, vous devez faire très attention à ce que vos URI Amazon S3 source et de destination correspondent à des compartiments sous-jacents différents. Si les compartiments source et de destination sont identiques, le fichier ou l’objet source peut être déplacé sur lui-même, ce qui peut entraîner la suppression accidentelle de votre fichier ou objet source. Pour vérifier que les compartiments source et de destination ne sont pas identiques, utilisez le paramètre --validate-same-s3-paths ou définissez la variable d’environnement AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS sur true.
L’exemple suivant déplace tous les objets de s3://amzn-s3-demo-bucket/example vers s3://amzn-s3-demo-bucket/.
$aws s3 mv s3://amzn-s3-demo-bucket/example s3://amzn-s3-demo-bucket/
L’exemple suivant déplace un fichier local de votre répertoire de travail actuel vers le compartiment Amazon S3 avec la commande s3 mv.
$aws s3 mv filename.txt s3://amzn-s3-demo-bucket
L’exemple suivant déplace un fichier de votre compartiment Amazon S3 vers votre répertoire de travail actuel, où ./ spécifie votre répertoire de travail actuel.
$aws s3 mv s3://amzn-s3-demo-bucket/filename.txt ./
Copie d’objets
Utilisez la commande s3
cp pour copier des objets depuis un compartiment ou un répertoire local.
Syntaxe
$aws s3 cp <source> <target> [--options]
Vous pouvez utiliser le paramètre Dash pour la diffusion de fichiers vers une entrée standard (stdin) ou une sortie standard (stdout).
Avertissement
Si vous utilisez PowerShell, le shell peut modifier le codage d’un CRLF ou ajouter un CRLF à une entrée ou sortie dirigée, ou à une sortie redirigée.
La commande s3 cp utilise la syntaxe suivante pour charger un flux de fichiers de stdin vers un compartiment spécifié.
Syntaxe
$aws s3 cp - <target> [--options]
La commande s3 cp utilise la syntaxe suivante pour télécharger un flux de fichiers Amazon S3 pour stdout.
Syntaxe
$aws s3 cp <target> [--options] -
Pour voir quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultez Options fréquemment utilisées pour les commandes s3. Pour obtenir la liste complète des options disponibles, consultez s3
cp dans la Référence des commandes de l’AWS CLI.
L’exemple suivant copie tous les objets de s3://amzn-s3-demo-bucket/example vers s3://amzn-s3-demo-bucket/.
$aws s3 cp s3://amzn-s3-demo-bucket/example s3://amzn-s3-demo-bucket/
L’exemple suivant copie un fichier local de votre répertoire de travail actuel dans le compartiment Amazon S3 avec la commande s3 cp.
$aws s3 cp filename.txt s3://amzn-s3-demo-bucket
L’exemple suivant copie un fichier de votre compartiment Amazon S3 vers votre répertoire de travail actuel, où ./ spécifie votre répertoire de travail actuel.
$aws s3 cp s3://amzn-s3-demo-bucket/filename.txt ./
L’exemple suivant utilise echo pour diffuser le texte « hello world » dans le fichier s3://bucket-name/filename.txt.
$echo "hello world" | aws s3 cp - s3://amzn-s3-demo-bucket/filename.txt
L’exemple suivant diffuse le fichier s3://amzn-s3-demo-bucket/filename.txt dans stdout et en imprime le contenu dans la console.
$aws s3 cp s3://amzn-s3-demo-bucket/filename.txt -hello world
L’exemple suivant diffuse le contenu de s3://bucket-name/pre dans stdout, utilise la commande bzip2 pour compresser les fichiers et charge le nouveau fichier compressé nommé key.bz2 dans s3://bucket-name.
$aws s3 cp s3://amzn-s3-demo-bucket/pre - | bzip2 --best | aws s3 cp - s3://amzn-s3-demo-bucket/key.bz2
Synchronisation d’objets
La commande s3
sync synchronise les contenus d’un compartiment et d’un répertoire ou le contenu de deux compartiments. Normalement, s3 sync copie les fichiers ou objets manquants ou obsolètes entre la source et la cible. Cependant, vous pouvez également indiquer l’option --delete pour supprimer des fichiers ou des objets de la cible qui ne sont pas présents dans la source.
Syntaxe
$aws s3 sync <source> <target> [--options]
Pour voir quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultez Options fréquemment utilisées pour les commandes s3. Pour obtenir la liste complète des options, consultez s3
sync dans la Référence des commandes de l’AWS CLI.
L’exemple suivant synchronise le contenu d’un préfixe Amazon S3 nommé path dans le compartiment nommé amzn-s3-demo-bucket avec le répertoire de travail actuel.
s3 sync met à jour tous les fichiers dont la taille ou l’heure de modification sont différentes de celles des fichiers portant le même nom dans la destination. La sortie affiche les opérations spécifiques effectuées lors de la synchronisation. Notez que l’opération synchronise de manière récursive le sous-répertoire MySubdirectory et son contenu avec s3://amzn-s3-demo-bucket/path/MySubdirectory.
$aws s3 sync . s3://amzn-s3-demo-bucket/pathupload: MySubdirectory\MyFile3.txt to s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt upload: MyFile2.txt to s3://amzn-s3-demo-bucket/path/MyFile2.txt upload: MyFile1.txt to s3://amzn-s3-demo-bucket/path/MyFile1.txt
L’exemple suivant, qui développe l’exemple précédent, montre comment utiliser l’option --delete.
// Delete local file$rm ./MyFile1.txt// Attempt sync without --delete option - nothing happens$aws s3 sync . s3://amzn-s3-demo-bucket/path// Sync with deletion - object is deleted from bucket$aws s3 sync . s3://amzn-s3-demo-bucket/path --deletedelete: s3://amzn-s3-demo-bucket/path/MyFile1.txt // Delete object from bucket$aws s3 rm s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txtdelete: s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt // Sync with deletion - local file is deleted$aws s3 sync s3://amzn-s3-demo-bucket/path . --deletedelete: MySubdirectory\MyFile3.txt // Sync with Infrequent Access storage class$aws s3 sync . s3://amzn-s3-demo-bucket/path --storage-class STANDARD_IA
Lorsque vous utilisez l’option --delete, les options --exclude et --include peuvent filtrer les fichiers ou les objets à supprimer au cours d’une opération s3
sync. Dans ce cas, la chaîne de paramètre doit spécifier les fichiers à exclure de ou à inclure dans la suppression dans le contexte du répertoire cible ou du compartiment. Vous en trouverez un exemple ci-dessous.
Assume local directory and s3://amzn-s3-demo-bucket/path currently in sync and each contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt '''// Sync with delete, excluding files that match a pattern. MyFile88.txt is deleted, while remote MyFile1.txt is not.$aws s3 sync . s3://amzn-s3-demo-bucket/path --delete --exclude "path/MyFile?.txt"delete: s3://amzn-s3-demo-bucket/path/MyFile88.txt '''// Sync with delete, excluding MyFile2.rtf - local file is NOT deleted$aws s3 sync s3://amzn-s3-demo-bucket/path . --delete --exclude "./MyFile2.rtf"download: s3://amzn-s3-demo-bucket/path/MyFile1.txt to MyFile1.txt ''' // Sync with delete, local copy of MyFile2.rtf is deleted$aws s3 sync s3://amzn-s3-demo-bucket/path . --deletedelete: MyFile2.rtf
Options fréquemment utilisées pour les commandes s3
Les options suivantes sont fréquemment utilisées pour les commandes décrites dans cette rubrique. Pour obtenir la liste complète des options que vous pouvez utiliser pour une commande, consultez la commande spécifique dans le Guide de référence de l’AWS CLI.
- acl
-
s3 syncets3 cppeuvent utiliser l’option--acl. Cela vous permet de définir les autorisations d’accès pour les fichiers copiés sur Amazon S3. L’option--aclaccepte les valeursprivate,public-readetpublic-read-write. Pour plus d’informations, consultez Liste ACL prête à l’emploi dans le Guide de l’utilisateur Amazon S3.$aws s3 sync . s3://amzn-s3-demo-bucket/path --acl public-read - exclude
-
Lorsque vous utilisez la commande
s3 cp,s3 mv,s3 syncous3 rm, vous pouvez filtrer les résultats à l’aide de l’option--excludeou--include. L’option--excludedéfinit des règles pour exclure uniquement les objets de la commande, et les options s’appliquent dans l’ordre spécifié. Voici un exemple :Local directory contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt// Exclude all .txt files, resulting in only MyFile2.rtf being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt"// Exclude all .txt files but include all files with the "MyFile*.txt" format, resulting in, MyFile1.txt, MyFile2.rtf, MyFile88.txt being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt" --include "MyFile*.txt"// Exclude all .txt files, but include all files with the "MyFile*.txt" format, but exclude all files with the "MyFile?.txt" format resulting in, MyFile2.rtf and MyFile88.txt being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude "MyFile?.txt" - include
-
Lorsque vous utilisez la commande
s3 cp,s3 mv,s3 syncous3 rm, vous pouvez filtrer les résultats à l’aide de l’option--excludeou--include. L’option--includedéfinit des règles pour inclure uniquement les objets spécifiés pour la commande, et les options s’appliquent dans l’ordre spécifié. Voici un exemple :Local directory contains 3 files: MyFile1.txt MyFile2.rtf MyFile88.txt// Include all .txt files, resulting in MyFile1.txt and MyFile88.txt being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt"// Include all .txt files but exclude all files with the "MyFile*.txt" format, resulting in no files being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt" --exclude "MyFile*.txt"// Include all .txt files, but exclude all files with the "MyFile*.txt" format, but include all files with the "MyFile?.txt" format resulting in MyFile1.txt being copied$aws s3 cp . s3://amzn-s3-demo-bucket/path --include "*.txt" --exclude "MyFile*.txt" --include "MyFile?.txt" - grant
-
Les commandes
s3 cp,s3 mvets3 syncincluent une option--grantsqui peut être utilisée pour accorder des autorisations sur l’objet à des utilisateurs ou groupes spécifiés. Définissez l’option--grantssur une liste d’autorisations à l’aide de la syntaxe suivante. RemplacezPermission,Grantee_TypeetGrantee_IDpar vos propres valeurs.Syntaxe
--grantsPermission=Grantee_Type=Grantee_ID[Permission=Grantee_Type=Grantee_ID...]Chaque valeur contient les éléments suivants :
-
Autorisation– Spécifie les autorisations accordées. Cette option peut être définie surread,readacl,writeacloufull. -
Type_bénéficiaire: indique comment identifier le bénéficiaire. Cette option peut être définie sururi,emailaddressouid. -
ID_bénéficiaire: indique le bénéficiaire en fonction deType_bénéficiaire.-
uri– URI du groupe. Pour plus d’informations, consultez Qui est un bénéficiaire ? -
emailaddress– Adresse e-mail du compte. -
id– ID canonique du compte.
-
Pour plus d’informations sur le contrôle d’accès Amazon S3, consultez Contrôle d’accès.
L’exemple suivant copie un objet dans un compartiment. Il accorde des autorisations
readsur l’objet à tout le monde et des autorisationsfull(read,readacletwriteacl) au compte associé àuser@example.com.$aws s3 cp file.txt s3://amzn-s3-demo-bucket/ --grantsread=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.comVous pouvez également spécifier une classe de stockage autre que celle par défaut (
REDUCED_REDUNDANCYouSTANDARD_IA) pour les objets que vous chargez dans Amazon S3. Pour ce faire, utilisez l’option--storage-class.$aws s3 cp file.txt s3://amzn-s3-demo-bucket/--storage-class REDUCED_REDUNDANCY -
- recursive
-
Lorsque vous utilisez cette option, la commande est exécutée sur tous les fichiers ou objets du répertoire ou du préfixe spécifié. L’exemple suivant supprime
s3://amzn-s3-demo-bucket/pathet l’ensemble de son contenu.$aws s3 rm s3://amzn-s3-demo-bucket/path --recursive
Ressources
Référence de l’AWS CLI :
Référence du service :
-
Utilisation des compartiments Amazon S3 dans le Guide de l’utilisateur Amazon S3
-
Utilisation des objets Amazon S3 dans le Guide de l’utilisateur Amazon S3
-
Liste hiérarchique de clés grâce au préfixe et au délimiteur dans le Guide de l’utilisateur Amazon S3
-
Annulation des chargements partitionnés vers un compartiment S3 à l’aide du kit AWS SDK pour .NET (bas niveau) dans le Guide de l’utilisateur Amazon S3