В этой команде AWS CLI, почему копирование файлов с подстановочными знаками --exclude & --include не работает? - PullRequest
0 голосов
/ 06 февраля 2020

В следующем каталоге я хочу загрузить только файлы .html в верхней части /DirA/ в root моего AWS сегмента:

/ DirA / Например,

.file
fileA.html
fileB.html
fileC.bin
/subdirA
/subdirB

Когда я запускаю это:

me@me:/DirA$ aws s3 cp ./ s3://MYBUCKET/ --dryrun --exclude "*" --include "*.html"

Файлы .html не обрабатываются aws, и я просто получаю пустое приглашение me@me:/DirA$. Нет ошибок или обычное сообщение (dry run) upload:.

Я также пытался

me@me:/$ aws s3 cp /DirA/ s3://MYBUCKET/ --dryrun --exclude "*" --include "*.html"

с тем же пустым приглашением.

Обратите внимание (если полезно):

  1. Выше было в Ubuntu 18.04 с последней установленной AWS CLI v1.
  2. Я также установил AWS CLI в Windows и сделал то же самое, с похожим пустым результатом.
  3. Загрузка материалов, которые не требуют --exclude или --include, как это работает нормально

Что я делаю не так и как это исправить. Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

josedasilva правильно, вам нужно использовать флаг --recursive. Теперь, чтобы включить только текущие файлы каталогов, вам нужно смешать некоторые флаги включения и исключения.

Это должно сделать работу:

aws s3 cp --recursive ./ s3://MYBUCKET/ --exclude "*" --include "*.html" --exclude "*/*"
0 голосов
/ 06 февраля 2020

Я полагаю, что в вашей команде отсутствует опция --recursive.

Внутри вашей папки:

aws s3 cp. s3: // DESTINATION_BUCKET / --dryrun --exclude = "*" --include = "*. html" - рекурсивный

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

Вот ссылка для do c на AWS: https://docs.aws.amazon.com/cli/latest/reference/s3/index.html#use -of-exclude-and- включают-фильтры

...