Я хочу использовать AWS S3 cli для копирования полной структуры каталогов в корзину S3.
Пока что все, что я пробовал, копирует файлы в корзину, но структура каталогов разрушена. (иначе говоря, каждый файл копируется в корневой каталог корзины)
Команда, которую я использую:
aws s3 cp --recursive ./logdata/ s3://bucketname/
Я также попытался убрать косую черту на моем исходном обозначении (то есть, копия из аргумента). Я также использовал подстановочный знак для обозначения всех файлов ... каждая вещь, которую я пробую, просто копирует файлы журнала в корневой каталог корзины.
amazon-web-services
amazon-s3
agentv
источник
источник
aws s3 cp --recursive mylocalsrcdir s3://bucket/
тогда просто поместите файлы в вашем локальном репозитории в область «корневой каталог», то если вы это сделаете,aws s3 cp --recursive mydirectory s3://bucket/mydirectory
то воссоздаст структуру каталогов на целевом конце.Ответы:
Я считаю, что синхронизация это метод, который вы хотите. Попробуйте это вместо этого:
источник
aws s3 sync ./logdata s3://bucketname/logdata
спасибо за лидерство. --- vЯ столкнулся с этой ошибкой при использовании любой из этих команд.
Я даже думал о монтировании S3-контейнера локально и последующем запуске rsync, даже если это не удалось (или завис на несколько часов), поскольку у меня есть тысячи файлов.
Наконец, s3cmd работал как шарм.
Это не только хорошо выполняет работу и показывает довольно подробный вывод на консоль, но также загружает большие файлы по частям.
источник
У меня сработало следующее:
aws s3 cp ~/this_directory s3://bucketname/this_directory --recursive
Затем AWS «сделает»
this_directory
и скопирует в него все локальное содержимое.источник
Используйте следующий скрипт для копирования структуры папок:
источник
Я не мог получить
s3 sync
илиs3 cp
поработать над папкой 55 ГБ с тысячами файлов и более чем 2 дюжинами подкаталогов внутри. Попытка синхронизации всей папки просто приведет к тому, что awscli молча завершится сбоем без загрузки чего-либо в корзину.Закончено это для первой синхронизации всех подкаталогов и их содержимого (структура папок сохраняется):
Затем я сделал это, чтобы получить 30000 файлов на верхнем уровне:
Обязательно следите за нагрузкой на сервере (protip, который вы можете использовать,
w
чтобы просто показать нагрузку) иctrl-z
приостанавливайте команду, если нагрузка становится слишком высокой. (fg
чтобы продолжить это снова).Положите это здесь на случай, если это поможет кому-либо в подобной ситуации.
Заметки:
-mindepth 1
исключает.
-maxdepth 1
не позволяет находить содержимое списка подкаталогов, так какs3 sync
обрабатывает их успешно.cut -c 3-
удаляет «./» в начале каждого результата поиска.источник
В качестве альтернативы вы также можете попробовать Minio Client или MC
Надеюсь, это поможет.
PS: я один из авторов проекта.
источник
(Совершенствование решения Шишира )
s3Copy.sh
)/PATH/TO/s3Copy.sh /PATH/TO/ROOT/DIR/OF/SOURCE/FILESandDIRS PATH/OF/S3/BUCKET
Например, если
s3Copy.sh
он хранится в домашнем каталоге, и я хочу скопировать все файлы и каталоги, расположенные в текущем каталоге, я запускаю это:~/s3Copy.sh . s3://XXX/myBucket
Вы можете легко изменить сценарий , чтобы позволить другим аргументам ,
s3 cp
таких как--include
,--exclude
...источник