Utilisez des commandes de haut niveau (s3) avec AWS CLI - AWS Command Line Interface

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisez des commandes de haut niveau (s3) avec AWS CLI

Cette rubrique décrit certaines des commandes que vous pouvez utiliser pour gérer les buckets et les objets Amazon S3 à l'aide des commandes duAWS CLI. Pour les commandes non abordées dans cette rubrique et pour des exemples de commandes supplémentaires, consultez les commandes dans la AWS CLIréférence.

Les aws s3 commandes de haut niveau 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.

Prérequis

Pour exécuter les s3 commandes, vous devez :

  • Installation et configuration de l'AWS CLI. Pour plus d’informations, consultez Installez ou mettez à jour la dernière version du AWS CLI et Authentification et identifiants d'accès.

  • Le profil que vous utilisez doit disposer d'autorisations autorisant les AWS opérations effectuées dans les exemples.

  • Comprenez les termes Amazon S3 suivants :

    • Bucket : 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 aws s3 commandes.

Chargement d'objets de grande taille

Lorsque vous utilisez aws s3 des commandes pour charger des objets volumineux dans un compartiment Amazon S3, le chargement partitionné est AWS CLI automatiquement effectué. Vous ne pouvez pas reprendre un téléchargement qui a échoué en utilisant ces aws s3 commandes.

Si le téléchargement partitionné échoue en raison d'un délai imparti, ou si vous l'avez annulé manuellementAWS CLI, le téléchargement AWS CLI arrête le téléchargement et nettoie tous les fichiers créés. Ce processus peut prendre plusieurs minutes.

Si le processus de téléchargement ou de nettoyage en plusieurs parties 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 téléchargement partitionné, utilisez la commande s3api . abort-multipart-upload

Propriétés des fichiers et balises dans les copies en plusieurs parties

Lorsque vous utilisez la AWS CLI version 1 des commandes de l'aws s3espace de noms pour copier un fichier d'un emplacement de compartiment Amazon S3 vers un autre emplacement de compartiment Amazon S3, et que cette opération utilise une copie en plusieurs parties, aucune propriété de fichier de l'objet source n'est copiée vers l'objet de destination.

Par défaut, les commandes de AWS CLI version 2 de l's3espace de noms qui effectuent des copies partitionnées transfèrent toutes les balises et l'ensemble de propriétés suivant de la copie source vers la copie de destination :content-type,content-language,content-encoding,content-disposition, cache-controlexpires, et. metadata

Cela peut entraîner des appels d'AWSAPI supplémentaires vers le point de terminaison Amazon S3 qui n'auraient pas été effectués si vous aviez utilisé AWS CLI la version 1. Peuvent être inclus : HeadObject, GetObjectTagging et PutObjectTagging.

Si vous devez modifier ce comportement par défaut dans les commandes de la AWS CLI version 2, utilisez le --copy-props paramètre pour spécifier l'une des options suivantes :

  • default — La valeur par défaut. Spécifie que la copie inclut toutes les balises attachées à l'objet source et les propriétés englobées par le paramètre --metadata-directive utilisé pour les copies non partitionnées : content-type, content-language, content-encoding, content-disposition, cache-control, expires et metadata.

  • metadata-directive — Spécifie que la copie inclut uniquement les propriétés incluses dans le --metadata-directive paramètre utilisé pour les copies non partitionnées. Aucune balise n'est copiée.

  • none — Spécifie que la copie n'inclut aucune des propriétés de l'objet source.

Création d'un compartiment

Utilisez la commande pour créer un bucket. Les noms de compartiment doivent être uniques au niveau mondial (uniques sur l'ensemble d'Amazon S3) et doivent être conformes au DNS.

Les noms de compartiments 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 s3://bucket-name bucket.

$ aws s3 mb s3://bucket-name

Répertorier les compartiments et les objets

Pour répertorier vos compartiments, dossiers ou objets, utilisez la commande. L'utilisation de la commande sans cible ni options permet de répertorier tous les compartiments.

Syntaxe

$ aws s3 ls <target> [--options]

Pour quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultezOptions fréquemment utilisées pour les commandes s3. Pour une liste complète des options disponibles, reportez-vous à la référence des AWS CLI commandes.

L'exemple suivant répertorie tous vos compartiments Amazon S3.

$ aws s3 ls 2018-12-11 17:08:50 my-bucket 2018-12-14 14:55:44 my-bucket2

La commande suivante répertorie 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 ls s3://bucket-name PRE 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 répertorie les objets dans bucket-name/example/ (c'est-à-dire, les objets dans bucket-name filtrés par le préfixe example/).

$ aws s3 ls s3://bucket-name/example/ 2018-12-06 18:59:32 3 MyFile1.txt

Supprimer des compartiments

Pour supprimer un bucket, utilisez la commande.

Syntaxe

$ aws s3 rb <target> [--options]

L'exemple suivant supprime le s3://bucket-name compartiment.

$ aws s3 rb s3://bucket-name

Par défaut, le compartiment doit être vide pour que l'opération aboutisse. Pour supprimer un compartiment qui n'est pas vide, vous devez inclure --force cette option. Si vous utilisez un compartiment versionné 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.

$ aws s3 rb s3://bucket-name --force

Supprimer des objets

Pour supprimer des objets dans un bucket ou dans votre répertoire local, utilisez la commande.

Syntaxe

$ aws s3 rm <target> [--options]

Pour quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultezOptions fréquemment utilisées pour les commandes s3. Pour une liste complète des options, voir la référence des AWS CLI commandes.

L'exemple suivant supprime filename.txt de. s3://bucket-name/example

$ aws s3 rm s3://bucket-name/example/filename.txt

L'exemple suivant supprime tous les objets de s3://bucket-name/example l'--recursiveoption.

$ aws s3 rm s3://bucket-name/example --recursive

Déplacer des objets

Utilisez la commande pour déplacer des objets depuis un bucket ou un répertoire local.

Syntaxe

$ aws s3 mv <source> <target> [--options]

Pour quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultezOptions fréquemment utilisées pour les commandes s3. Pour une liste complète des options disponibles, reportez-vous à la référence des AWS CLI commandes.

L'exemple suivant déplace tous les objets de s3://bucket-name/example verss3://my-bucket/.

$ aws s3 mv s3://bucket-name/example s3://my-bucket/

L'exemple suivant déplace un fichier local de votre répertoire de travail actuel vers le compartiment Amazon S3 avec la s3 mv commande.

$ aws s3 mv filename.txt s3://bucket-name

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://bucket-name/filename.txt ./

Copie d'objets

Utilisez la commande pour copier des objets depuis un bucket ou un répertoire local.

Syntaxe

$ aws s3 cp <source> <target> [--options]

Vous pouvez utiliser le paramètre Dash pour le streaming de fichiers vers une entrée standard (stdin) ou une sortie standard (stdout).

Avertissement

Si vous l'utilisez PowerShell, le shell peut modifier le codage d'un CRLF ou ajouter un CRLF à une entrée ou à une sortie redirigée, ou à une sortie redirigée.

La s3 cp commande utilise la syntaxe suivante pour télécharger un flux de fichiers depuis stdin un compartiment spécifié.

Syntaxe

$ aws s3 cp - <target> [--options]

La s3 cp commande utilise la syntaxe suivante pour télécharger un flux de fichiers Amazon S3 pourstdout.

Syntaxe

$ aws s3 cp <target> [--options] -

Pour quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultezOptions fréquemment utilisées pour les commandes s3. Pour la liste complète des options, voir la référence des AWS CLI commandes.

L'exemple suivant copie tous les objets de s3://bucket-name/example verss3://my-bucket/.

$ aws s3 cp s3://bucket-name/example s3://my-bucket/

L'exemple suivant copie un fichier local de votre répertoire de travail actuel vers le compartiment Amazon S3 avec la s3 cp commande.

$ aws s3 cp filename.txt s3://bucket-name

L'exemple suivant copie un fichier de votre compartiment Amazon S3 vers votre répertoire de travail actuel, où ./ indique votre répertoire de travail actuel.

$ aws s3 cp s3://bucket-name/filename.txt ./

L'exemple suivant utilise echo pour diffuser le texte « hello world » dans le s3://bucket-name/filename.txt fichier.

$ echo "hello world" | aws s3 cp - s3://bucket-name/filename.txt

L'exemple suivant diffuse le s3://bucket-name/filename.txt fichier vers la console stdout et en imprime le contenu.

$ aws s3 cp s3://bucket-name/filename.txt - hello world

L'exemple suivant diffuse le contenu de s3://bucket-name/pre tostdout, utilise la bzip2 commande pour compresser les fichiers et télécharge le nouveau fichier compressé nommé key.bz2 tos3://bucket-name.

$ aws s3 cp s3://bucket-name/pre - | bzip2 --best | aws s3 cp - s3://bucket-name/key.bz2

Synchroniser des objets

La commande synchronise le contenu d'un compartiment et d'un répertoire, ou le contenu de deux compartiments. Généralement, s3 sync copie les fichiers ou objets manquants ou périmés 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 quelques options courantes à utiliser avec cette commande, ainsi que des exemples, consultezOptions fréquemment utilisées pour les commandes s3. Pour une liste complète des options, voir la référence des AWS CLI commandes.

L'exemple suivant synchronise le contenu d'un préfixe Amazon S3 nommé path dans le compartiment nommé my-bucket avec le répertoire de travail actuel.

s3 syncmet à jour tous les fichiers dont la taille ou l'heure de modification sont différentes de celles des fichiers portant le même nom à 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://my-bucket/path/MySubdirectory

$ aws s3 sync . s3://my-bucket/path upload: MySubdirectory\MyFile3.txt to s3://my-bucket/path/MySubdirectory/MyFile3.txt upload: MyFile2.txt to s3://my-bucket/path/MyFile2.txt upload: MyFile1.txt to s3://my-bucket/path/MyFile1.txt

L'exemple suivant, qui prolonge le précédent, montre comment utiliser l'--deleteoption.

// Delete local file $ rm ./MyFile1.txt // Attempt sync without --delete option - nothing happens $ aws s3 sync . s3://my-bucket/path // Sync with deletion - object is deleted from bucket $ aws s3 sync . s3://my-bucket/path --delete delete: s3://my-bucket/path/MyFile1.txt // Delete object from bucket $ aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txt delete: s3://my-bucket/path/MySubdirectory/MyFile3.txt // Sync with deletion - local file is deleted $ aws s3 sync s3://my-bucket/path . --delete delete: MySubdirectory\MyFile3.txt // Sync with Infrequent Access storage class $ aws s3 sync . s3://my-bucket/path --storage-class STANDARD_IA

Lorsque vous utilisez l'--deleteoption, les --include options --exclude et peuvent filtrer les fichiers ou les objets à supprimer au cours d'une s3 sync opération. 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://my-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://my-bucket/path --delete --exclude "path/MyFile?.txt" delete: s3://my-bucket/path/MyFile88.txt ''' // Sync with delete, excluding MyFile2.rtf - local file is NOT deleted $ aws s3 sync s3://my-bucket/path . --delete --exclude "./MyFile2.rtf" download: s3://my-bucket/path/MyFile1.txt to MyFile1.txt ''' // Sync with delete, local copy of MyFile2.rtf is deleted $ aws s3 sync s3://my-bucket/path . --delete delete: 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 une liste complète des options que vous pouvez utiliser sur une commande, consultez la commande spécifique dans le version 2 du guide de référence.

liste acl

s3 syncet s3 cp vous pouvez utiliser l'--acloption. Cela vous permet de définir les autorisations d'accès pour les fichiers copiés sur Amazon S3. L'option --acl accepte les valeurs private, public-read et public-read-write. Pour plus d'informations, consultez Canned ACL dans le guide de l'utilisateur d'Amazon Simple Storage Service.

$ aws s3 sync . s3://my-bucket/path --acl public-read
exclure

Lorsque vous utilisez la s3 rm commandes3 cp, s3 mvs3 sync, ou, ou, vous pouvez filtrer les résultats à l'aide de l'--includeoption --exclude ou. L'--excludeoption dé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://my-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://my-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://my-bucket/path --exclude "*.txt" --include "MyFile*.txt" --exclude "MyFile?.txt"
inclure

Lorsque vous utilisez la s3 rm commandes3 cp, s3 mvs3 sync, ou, vous pouvez filtrer les résultats à l'aide de l'--includeoption --exclude ou. L'--includeoption définit des règles pour inclure uniquement les objets spécifiés pour la commande, et les options s'appliquent dans l'ordre indiqué. 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://my-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://my-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://my-bucket/path --include "*.txt" --exclude "MyFile*.txt" --include "MyFile?.txt"
grant (attribuer)

Les commandes s3 cp, s3 mv et s3 sync incluent une option --grants qui peut être utilisée pour accorder des autorisations sur l'objet à des utilisateurs ou groupes spécifiés. Définissez l'--grantsoption sur une liste d'autorisations en utilisant la syntaxe suivante. Remplacez Permission, Grantee_Type et Grantee_ID par vos propres valeurs.

Syntaxe

--grants Permission=Grantee_Type=Grantee_ID [Permission=Grantee_Type=Grantee_ID ...]

Chaque valeur contient les éléments suivants :

  • Autorisation — Spécifie les autorisations accordées. Peut être réglé sur readreadacl,writeacl, oufull.

  • Grantee_Type — Spécifie comment identifier le bénéficiaire. Peut être réglé sur uriemailaddress, ouid.

  • Grantee_ID — Spécifie le bénéficiaire en fonction de Grantee_Type.

    • uri— L'URI du groupe. Pour plus d'informations, voir Qui est un bénéficiaire ?

    • emailaddress— L'adresse e-mail du compte.

    • id— L'identifiant canonique du compte.

Pour plus d'informations sur le contrôle d'accès Amazon S3, consultez la section Contrôle d'accès.

L'exemple suivant copie un objet dans un compartiment. Il accorde des read autorisations sur l'objet à tout le monde, ainsi que full des autorisations (readreadacl, etwriteacl) au compte associé à celui-ciuser@example.com.

$ aws s3 cp file.txt s3://my-bucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com

Vous pouvez également spécifier une classe de stockage autre que celle par défaut (REDUCED_REDUNDANCYouSTANDARD_IA) pour les objets que vous chargez sur Amazon S3. Pour ce faire, utilisez l'option --storage-class.

$ aws s3 cp file.txt s3://my-bucket/ --storage-class REDUCED_REDUNDANCY
recursive

Lorsque vous utilisez cette option, la commande est exécutée sur tous les fichiers ou objets situés dans le répertoire ou le préfixe spécifié. L'exemple suivant supprime l's3://my-bucket/pathintégralité de son contenu.

$ aws s3 rm s3://my-bucket/path --recursive

Ressources

AWS CLIréférence :

Référence du service :