Проблема с aws cli с s3 syn c, не копирующими файлы из подпапки - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть корзина S3, которая выглядит следующим образом:

bucket_name/v1.0.0/file1.js
bucket_name/v1.0.0/file2.js
bucket_name/file3.js
bucket_name/file4.js

Я пытаюсь скопировать файлы из подкаталога v1.0.0 в каталог или корзину root и удалить старые файлы.

aws s3 sync s3://bucket_name/v1.0.0 s3://bucket_name/ --delete --exclude 'v*'

Чтобы исключить удаление подкаталогов версий, но по какой-то причине это просто удаление файлов 3. js и file4. js из корня / корзины, но при этом не синхронизируются никакие файлы из v1. .0.0 подкаталог, как я ожидал.

Я ожидал, что закончится:

bucket_name/v1.0.0/file1.js
bucket_name/v1.0.0/file2.js
bucket_name/file1.js
bucket_name/file2.js

1 Ответ

2 голосов
/ 07 апреля 2020

Вы можете скопировать файлы из каталога v1.0.0 в каталог root с помощью:

aws s3 sync s3://bucket_name/v1.0.0/ s3://bucket_name/

Команда AWS CLI sync будет Никогда не удаляйте исходные файлы. Опция --delete говорит ему об удалении любых файлов в месте назначения, которых нет в источнике. Например, предположим, что вы запускаете sync один раз в день, и кто-то удалил файл из источника в течение дня. В этом случае файл также будет удален из места назначения процессом syn c.

Если вы sh переместите объекты, то вы можете использовать:

aws s3 mv s3://bucket_name/v1.0.0/ s3://bucket_name/ --recursive

Это эффективно скопирует объекты, а затем удалит исходные объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...