it-swarm.com.ru

Как переместить файлы из Amazon ec2 в корзину s3 с помощью командной строки

В моем экземпляре Amazon EC2 у меня есть папка с именем uploads. В этой папке у меня 1000 изображений. Теперь я хочу скопировать все изображения в мое новое ведро S3. Как я могу это сделать?

19
Pacts Ramun

Первый вариант sm3cmd

Используйте s3cmd

s3cmd get s3://AWS_S3_Bucket/dir/file

Взгляните на это документация s3cmd

если вы используете Linux, запустите это в командной строке:

Sudo apt-get install s3cmd

или Centos, Федор.

yum install s3cmd

Пример использования:

s3cmd put my.file s3://pactsRamun/folderExample/fileExample

Второй вариант

Использование Cli от Amazon

Обновление

Как сказал @ tedder42 в комментариях, вместо использования cp используйте sync

Взгляните на следующий синтаксис:

aws s3 sync <source> <target> [--options]

Пример:

aws s3 sync . s3://my-bucket/MyFolder

Дополнительные сведения и примеры доступны на Управление объектами с помощью команд высокого уровня s3 с интерфейсом командной строки AWS

24
Ethaan
aws s3 sync your-dir-name s3://your-s3-bucket-name/folder-name
  • Важно: при этом каждый элемент в названном каталоге будет скопирован в выбранную вами папку корзины s3. Это не скопирует ваш каталог в целом.

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

aws s3 sync your-dir-name/file-name s3://your-s3-bucket-name/folder-name/file-name

или вы можете с диким символом, чтобы выбрать все. Обратите внимание, что это скопирует ваш каталог в целом, а также сгенерирует метаданные и сохранит их в вашей папке s3 bucket.

aws s3 sync . s3://your-s3-bucket-name/folder-name

См. Весь мой пост в блоге Как подключиться к S3 Bucket из экземпляра EC2 - Справка AWS

3
zafrin

Также обратите внимание на синхронизацию aws с s3: он многопоточный и загружает несколько частей файла одновременно. Однако количество потоков в настоящее время не настраивается.

2
Tim Johnson
aws s3 mv /home/inbound/ s3://test/ --recursive --region us-west-2
1
raju

У нас есть функция dryrun, доступная для тестирования.

  • Для начала я бы назначил ec2-экземпляру роль для чтения Запись в S3
  • SSH в экземпляр и выполните следующее
  • vi tmp1.txt
  • aws s3 mv ./ s3: //bucketname-bucketurl.com/ --dryrun
  • Если это работает, то все, что вам нужно сделать, это либо создать скрипт для Загрузить все файлы с конкретными из этой папки в корзину s3
  • Я выполнил следующую команду в своем сценарии, чтобы переписать файлы Старше 2 минут из текущего каталога в корзину/папку.
  • cd dir; лс -рт | xargs -I ФАЙЛЫ находят ФАЙЛЫ -maxdepth 1 -name '*. txt' -mmin +2 -exec aws s3 mv '{}' s3: //bucketurl.com
0
AKV