*
Belirli bir paketten bir dosya alt kümesini seçmek için AWS CLI'de kullanırken sorun yaşıyorum .
*
Böyle bir yola eklemek işe yaramıyor
aws s3 cp s3://data/2016-08* .
Yanıtlar:
Mevcut dizine bir aws kova birden fazla dosya indirmek için kullanabilir recursive
, exclude
ve include
bunun gibi bayrakları:
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"
Bu filtrelerin nasıl kullanılacağı hakkında daha fazla bilgi için: http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters
sync
Varsayılan olarak yinelemeli benzer bir efekt için de kullanabilirsiniz :aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
--dryrun
Joker karakterle doğru nesne kümesinin seçildiğinden emin olmak için "yıkıcı" komutları bayrakla test etmek iyi bir fikirdir .
Parametrelerin Sırası Önemlidir
Hariç tutma ve dahil etme belirli bir sırayla kullanılmalıdır. Önce hariç tutmalı ve sonra eklemeliyiz. Bunun galibi başarılı olmayacak.
aws s3 cp s3://data/ . --recursive --include "2016-08*" --exclude "*"
Bu başarısız olacaktır çünkü bu durumda parametrelerin sırası önemlidir. Dahil etme, * ile hariç tutulur
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`
Bu işe yarayacak çünkü her şeyi dışladık ama daha sonra belirli dizini dahil ettik.
Tamam, örneğin yanlış olduğunu ve şu şekilde düzeltilmesi gerektiğini söylemeliyim:
aws s3 cp . s3://data/ --recursive --exclude "*" --include "2006-08*" --exclude "*/*"
.
İhtiyaçları sonra haklı cp
. Nihai --exclude
emin hiçbir şey tarafından toplanır altdizinlere çekilmiyor olduğunu yapmaktır --recursive
(öğrenilen yanlışlıkla biri olduğunu ...)
Bu, buraya geldiklerinde bununla mücadele eden herkes için işe yarayacak.
--exclude "*"
Bir yazım hatası olmadığını belirtmek isterim . Eklemezseniz, içerme herhangi bir şeyle eşleşecektir . Belgelere göre: Varsayılan olarak tüm dosyaların dahil edildiğini unutmayın. Bu, yalnızca bir --include filtresi sağlamanın hangi dosyaların aktarılacağını değiştirmeyeceği anlamına gelir. --include, yalnızca --exclude filtresinden dışlanan dosyaları yeniden dahil eder. Yalnızca belirli bir uzantıya sahip dosyaları yüklemek istiyorsanız, önce tüm dosyaları hariç tutmanız, ardından belirli uzantıya sahip dosyaları yeniden eklemeniz gerekir.