У меня проблемы с использованием *
в интерфейсе командной строки AWS для выбора подмножества файлов из определенного сегмента.
Добавление *
к такому пути, похоже, не работает
aws s3 cp s3://data/2016-08* .
Ответы:
Для загрузки нескольких файлов из 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
sync
для аналогичного эффекта, который по умолчанию является рекурсивным:aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
Порядок параметров имеет значение
Исключить и включить следует использовать в определенном порядке: сначала нужно исключить, а затем включить. Наоборот, успеха не будет.
aws s3 cp s3://data/ . --recursive --include "2016-08*" --exclude "*"
Это не удастся, потому что в этом случае важен порядок параметров. Включение исключено *
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`
Этот будет работать, потому что мы исключили все, но позже мы включили конкретный каталог.
Хорошо, я должен сказать, что это неверный пример и его следует исправить следующим образом:
aws s3 cp . s3://data/ --recursive --exclude "*" --include "2006-08*" --exclude "*/*"
В .
должен быть сразу же после cp
. Последний --exclude
- убедиться, что ничего не получено из каких-либо подкаталогов, которые были взяты --recursive
(узнал это по ошибке ...)
Это сработает для всех, кто борется с этим к тому времени, когда они сюда приедут.
--exclude "*"
это не опечатка. Если вы не добавите его, включение будет соответствовать чему угодно . Согласно документации: обратите внимание, что по умолчанию включены все файлы. Это означает, что предоставление только фильтра --include не изменит передаваемые файлы. --include повторно включает только те файлы, которые были исключены из фильтра --exclude. Если вы хотите загружать файлы только с определенным расширением, вам нужно сначала исключить все файлы, а затем повторно включить файлы с определенным расширением.