Как я могу использовать подстановочные знаки для "cp" группы файлов с помощью AWS CLI

У меня возникли проблемы с использованием * в AWS CLI, чтобы выбрать подмножество файлов из определенного ведра.

Добавление * к пути, подобному этому, похоже, не работает

aws s3 cp s3://data/2016-08*.

Ответы

Ответ 1

Чтобы загрузить несколько файлов из корзины aws в ваш текущий каталог, вы можете использовать флаги recursive, exclude и include, например:

aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"

Для получения дополнительной информации о том, как использовать эти фильтры: http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters

Ответ 2

Порядок выполнения параметров

Исключить и включить следует использовать в определенном порядке, мы должны сначала исключить, а затем включить. И наоборот, это не будет успешным.

aws s3 cp s3://data/ . --recursive  --include "2016-08*" --exclude "*" 

Это не сработает, потому что в этом случае порядок параметров будет соответствовать. Включение исключается *

aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"'

Этот будет работать, потому что мы исключили все, но позже мы включили конкретный каталог.

Ответ 3

Ссылаясь на сообщение @punkrockpolly, если вы хотите скопировать несколько файлов из одного сегмента в другой, вы можете использовать флаги recursive, exclude и include, например:

aws s3 cp s3://srcBucket/srcDirectory s3://destinationBucket/destinationDirectory --recursive --exclude "*" --include "FileNamePrefix*" --include "*FileNameSuffix"

Где вы можете использовать несколько флагов include.

Помните, что дополнительные параметры будут указываться после Source и Destiantion.

Чтобы скопировать из локального каталога в корзину S3, используйте команду

aws s3 sync /tmp/foo s3://bucket/

где исходный каталог /tmp/foo. Все фильтры include/exclude будут оцениваться с добавлением исходного каталога.

Для получения дополнительной информации о том, как использовать эти фильтры: http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters