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.
À l'aide de commandes de haut niveau (s3) dans le 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 du AWS CLI. Pour les commandes non abordées dans cette rubrique et pour des exemples de commandes supplémentaires, consultez les commandes dans la AWS CLI ré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.
Rubriques
Prérequis
Pour exécuter les s3
commandes, vous devez :
Installation et configuration de l' AWS CLI. Pour plus d’informations, consultez Installation ou mise à jour vers la dernière version du AWS CLI et Authentification et informations d'accès pour AWS CLI.
-
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 volumineux
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é manuellement AWS 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 s3
espace 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's3
espace 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-control
expires
, et. metadata
Cela peut entraîner des AWS API appels 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
etmetadata
. -
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 DNS conformes.
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://amzn-s3-demo-bucket
bucket.
$
aws s3 mb s3://
amzn-s3-demo-bucket
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 amzn-s3-demo-bucketamzn-s3-demo-bucket1 2018-12-14 14:55:44 amzn-s3-demo-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://amzn-s3-demo-bucket
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 des objets dans bucket-name
filtré par le préfixe example/
).
$
aws s3 ls
s3://amzn-s3-demo-bucket/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://amzn-s3-demo-bucket
compartiment.
$
aws s3 rb
s3://amzn-s3-demo-bucket
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://amzn-s3-demo-bucket
--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://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'--recursive
option.
$
aws s3 rm s3://amzn-s3-demo-bucket/example --recursive
Déplacer des objets
Utilisez la commande pour déplacer des objets depuis un bucket ou un répertoire local. La s3 mv
commande 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 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.
Avertissement
Si vous utilisez n'importe quel type de point d'accès ARNs ou d'alias de point d'accès dans votre source ou votre destination Amazon S3URIs, vous devez faire très attention à ce que votre Amazon S3 source et destination se URIs résolvent en différents compartiments sous-jacents. 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 --validate-same-s3-paths
paramètre ou définissez la variable AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS
d'true
environnement sur.
L'exemple suivant déplace tous les objets de s3://amzn-s3-demo-bucket/example
verss3://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 s3 mv
commande.
$
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 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'une entrée CRLF ou d'une sortie canalisée, ou en CRLF ajouter une, 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://amzn-s3-demo-bucket/example
verss3://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 vers le compartiment Amazon S3 avec la s3 cp
commande.
$
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ù ./
indique 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 s3://bucket-name/filename.txt
fichier.
$
echo "hello world" | aws s3 cp - s3://amzn-s3-demo-bucket/filename.txt
L'exemple suivant diffuse le s3://amzn-s3-demo-bucket/filename.txt
fichier vers la console stdout
et en imprime le contenu.
$
aws s3 cp s3://amzn-s3-demo-bucket/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://amzn-s3-demo-bucket/pre - | bzip2 --best | aws s3 cp - s3://amzn-s3-demo-bucket/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é 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 à 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://mamzn-s3-demo-bucket/path
upload: 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 prolonge le précédent, montre comment utiliser l'--delete
option.
// 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 --delete
delete: s3://amzn-s3-demo-bucket/path/MyFile1.txt // Delete object from bucket
$
aws s3 rm s3://amzn-s3-demo-bucket/path/MySubdirectory/MyFile3.txt
delete: 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 . --delete
delete: 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'--delete
option, 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://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 . --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 sync
ets3 cp
peut utiliser l'--acl
option. Cela vous permet de définir les autorisations d'accès pour les fichiers copiés sur Amazon S3. L'option--acl
accepte les valeursprivate
,public-read
etpublic-read-write
. Pour plus d'informations, consultez Canned ACL dans le guide de l'utilisateur Amazon S3.$
aws s3 sync . s3://amzn-s3-demo-bucket/path --acl public-read
- exclure
-
Lorsque vous utilisez la
s3 rm
commandes3 cp
,s3 mv
s3 sync
, ou, ou, vous pouvez filtrer les résultats à l'aide de l'--include
option--exclude
ou. L'--exclude
option 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://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"
- inclure
-
Lorsque vous utilisez la
s3 rm
commandes3 cp
,s3 mv
s3 sync
, ou, vous pouvez filtrer les résultats à l'aide de l'--include
option--exclude
ou. L'--include
option 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://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 (attribuer)
-
Les commandes
s3 cp
,s3 mv
ets3 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'--grants
option sur une liste d'autorisations en utilisant la syntaxe suivante. RemplacezPermission
,Grantee_Type
etGrantee_ID
par vos propres valeurs.Syntaxe
--grants
Permission
=Grantee_Type
=Grantee_ID
[Permission
=Grantee_Type
=Grantee_ID
...]Chaque valeur contient les éléments suivants :
-
Permission
— Spécifie les autorisations accordées. Peut être réglé surread
readacl
,writeacl
, oufull
. -
Grantee_Type
— Spécifie comment identifier le bénéficiaire. Peut être réglé sururi
emailaddress
, ouid
. -
Grantee_ID
— Spécifie le bénéficiaire en fonction deGrantee_Type
.-
uri
— Celui du groupeURI. 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 quefull
des autorisations (read
readacl
, etwriteacl
) au compte associé à celui-ciuser@example.com
.$
aws s3 cp file.txt s3://amzn-s3-demo-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_REDUNDANCY
ouSTANDARD_IA
) pour les objets que vous chargez sur 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 situés dans le répertoire ou le préfixe spécifié. L'exemple suivant supprime l'
s3://amzn-s3-demo-bucket/path
intégralité de son contenu.$
aws s3 rm s3://amzn-s3-demo-bucket/path --recursive
Ressources
AWS CLI référence :
Référence du service :
-
Utilisation des compartiments Amazon S3 dans le guide de l'utilisateur Amazon S3
-
Utilisation d'objets Amazon S3 dans le guide de l'utilisateur Amazon S3
-
Répertorier les clés de manière hiérarchique à l'aide d'un préfixe et d'un délimiteur dans le guide de l'utilisateur Amazon S3
-
Abandonnez les téléchargements partitionnés vers un compartiment S3 en utilisant le AWS SDK for .NET (bas niveau) du guide de l'utilisateur Amazon S3