В моем экземпляре Amazon EC2 у меня есть папка с именем uploads
. В этой папке у меня 1000 изображений. Теперь я хочу скопировать все изображения в мое новое ведро S3. Как я могу это сделать?
Как переместить файлы из amazon ec2 в корзину 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 находятся в одной учетной записи. Приветствия.