Перемещение множества файлов в одном ведре - PullRequest
14 голосов
/ 12 августа 2011

У меня есть 200 тыс. Файлов в корзине, которые мне нужно переместить в подпапку в той же корзине, какой подход лучше?

Ответы [ 5 ]

24 голосов
/ 28 апреля 2014

Я недавно столкнулся с той же проблемой.Я решил это с помощью командной строки API.

http://docs.aws.amazon.com/cli/latest/index.html http://docs.aws.amazon.com/cli/latest/reference/s3/mv.html

aws s3 mv s3://BUCKETNAME/myfolder/photos/ s3://BUCKETNAME/myotherfolder/photos/ --recursive --acl public-read 

Мне нужно, чтобы объекты были общедоступными, поэтому я добавил опцию acl.

7 голосов
/ 09 апреля 2018

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

Запуск сниппета следующим образом:

aws s3 mv s3://bucket-name/ s3://bucket-name/subfolder --exclude "*" --include "*.txt"

Используйте флаг --include, чтобы выборочно выбрать нужные файлы

1 голос
/ 08 мая 2012

Операции «Переименовать» не существует, хотя было бы замечательно, если бы она была.

Вместо этого вам нужно перебрать каждый элемент, который вы хотите переименовать, выполнить копирование в новый объект, а затемудалить на старом объекте.

Примечание: для упрощения я предполагаю, что у вас нетв вашем ведении включено управление версиями.

0 голосов
/ 20 февраля 2019

Приведенный ниже скрипт отлично работает для меня без каких-либо проблем.

for i in `cat s3folders`
do 
     aws s3 mv s3://Bucket_Name/"$i"/ s3://Another_Bucket_Name/ --recursive
done

Он также удаляет пустую папку из источника, как только файлы перемещаются в цель.

0 голосов
/ 05 июня 2017

У меня была такая же проблема, и я в итоге использовал aws s3 mv вместе с циклом bash for.

Я сделал aws ls bucket_name, чтобы получить все файлы в корзине.Затем я решил, какие файлы я хочу переместить, и добавил их в file_names.txt.

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

for f in $(cat file_names.txt)
do
    aws s3 mv s3://bucket-name/$f s3://bucket-name/subfolder/$f
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...