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

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

Ответ 1

Первый вариант 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.

Ответ 2

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

Ответ 3

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

Ответ 4

aws s3 mv /home/inbound/ s3://test/ --recursive --region us-west-2

Ответ 5

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

  • Начнем с того, что я бы присвоил ec2-экземпляр роли, которую можно читать пишите на S3
  • SSH в экземпляр и выполните следующие
  • vi tmp1.txt
  • aws s3 mv./s3://bucketname-bucketurl.com/--dryrun
  • Если это работает, все, что вам нужно сделать, это либо создать script, либо загружать все файлы с определенными данными из этой папки в корзину s3
  • Я проделал надпись в моей script следующей команде: файлы старше 2 минут из текущего каталога в папку/папку
  • cd dir; ls. -rt | xargs -I FILES find FILES -maxdepth 1 -name '*.txt' -mmin +2 -exec aws s3 mv '{}' s3://bucketurl.com

Ответ 6

Это можно сделать очень просто. Выполните следующие действия:

  • Откройте AWS EC2 на консоли.
  • Выберите экземпляр и перейдите к действиям.
  • Выберите настройки экземпляров и выберите "Присоединить/заменить роль IAM"
  • После этого подключитесь к экземпляру AWS, а все остальное будет выполнено с помощью следующих команд консоли:

aws s3 cp расположение файла/имя файла s3://имя_хранилища

Следовательно, вам не нужно устанавливать или делать какие-либо дополнительные усилия.

Обратите внимание... расположение файла относится к локальному адресу. И имя ведра - это имя вашего ведра. Также обратите внимание: это возможно, если ваш экземпляр и корзина S3 находятся в одной учетной записи. Приветствия.