Как рекурсивно копировать файлы в S3 из папки в другую, используя bash-скрипт? - PullRequest
0 голосов
/ 06 ноября 2018

В моей корзине AWS S3 такая структура папок называется myfiles:

mainfolder/
|-- current
`-- error
    `-- files
        |-- files1
        `-- files2

Я пытаюсь скопировать все файлы из папок files1 и files2 в текущую, чтобы полученная структура выглядела так:

mainfolder/
|-- current
|   |-- files1
|   `-- files2
`-- error
    `-- files
        |-- files1
        `-- files2

Я пытаюсь сделать это, используя простой цикл для цикла вроде:

BUCKET=myfiles
for dir in $(aws s3 ls s3://$BUCKET/mainfolder/error/files/ | awk '{print $2}'); do
    aws s3 cp $i s3://$BUCKET/mainfolder/current/$i
done

но я получаю ошибки:

The user-provided path 0 does not exist.

Как это можно сделать?

1 Ответ

0 голосов
/ 06 ноября 2018

Вы можете использовать:

aws s3 sync s3://my-bucket/mainfolder/error/files/ s3://my-bucket/mainfolder/current/

или

aws s3 cp --recursive s3://my-bucket/mainfolder/error/files/* s3://my-bucket/mainfolder/current/

См .: sync - Справочник по командам интерфейса командной строки AWS

...