J'ai du mal à utiliser *
dans l'AWS CLI pour sélectionner un sous-ensemble de fichiers dans un certain seau.
Ajout de *
au chemin comme ceci ne semble pas fonctionner
aws s3 cp s3://data/2016-08* .
J'ai du mal à utiliser *
dans l'AWS CLI pour sélectionner un sous-ensemble de fichiers dans un certain seau.
Ajout de *
au chemin comme ceci ne semble pas fonctionner
aws s3 cp s3://data/2016-08* .
Pour télécharger plusieurs fichiers d'un seau aws vers votre répertoire actuel, vous pouvez utiliser recursive
, exclude
et include
drapeaux. L'ordre des paramètres est important.
Exemple de commande :
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"
Pour plus d'informations sur l'utilisation de ces filtres : http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters
Je tiens à souligner que --exclude "*"
n'est pas une faute de frappe. Si vous ne l'ajoutez pas, l'inclusion correspondra à n'importe quoi. . Comme indiqué dans la documentation : Notez que, par défaut, tous les fichiers sont inclus. Cela signifie que le fait de fournir uniquement un filtre --include ne changera pas les fichiers transférés. L'option --include ne fait que ré-inclure les fichiers qui ont été exclus par un filtre --exclude. Si vous ne voulez transférer que les fichiers ayant une extension particulière, vous devez d'abord exclure tous les fichiers, puis ré-inclure les fichiers ayant cette extension particulière.
Vous pouvez également utiliser sync
pour un effet similaire, qui est récursif par défaut : aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
L'ordre des paramètres est important
L'exclusion et l'inclusion doivent être utilisées dans un ordre précis. Il faut d'abord exclure, puis inclure. L'inverse ne fonctionnera pas.
aws s3 cp s3://data/ . --recursive --include "2016-08*" --exclude "*"
Cela échouera car l'ordre des paramètres est important dans ce cas. L'include est exclu par le *
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`
Celui-ci fonctionnera parce que nous avons tout exclu, mais plus tard nous avons inclus le répertoire spécifique.
Bon, je dois dire que l'exemple est faux et devrait être corrigé comme suit :
aws s3 cp . s3://data/ --recursive --exclude "*" --include "2006-08*" --exclude "*/*"
Le site .
doit se trouver juste après le cp
. La finale --exclude
est de s'assurer que rien n'est récupéré dans les sous-répertoires qui sont récupérés par la commande --recursive
(j'ai appris cela par erreur...)
Ça marchera pour tous ceux qui ont eu du mal à s'en sortir au moment où ils sont arrivés ici.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.