Подтвердить что ты не робот

Как передавать файлы между AWS s3 и AWS ec2

Я использую экземпляр AWS ec2. В этом экземпляре я получаю некоторые файлы. Эти операции выполняются с помощью пользовательских данных.

Теперь я хочу сохранить эти файлы на s3, написав код в самих пользовательских данных.

  • Итак, как я могу хранить эти файлы на s3?
  • Есть ли у него учебники?
4b9b3361

Ответ 1

Используя самый последний AWS CLI (http://aws.amazon.com/cli/), вы можете использовать следующие команды для копирования файлов из вашего экземпляра Ec2 или даже вашего локального компьютера в хранилище S3.

aws s3 cp myfolder s3://mybucket/myfolder --recursive

Вы получите следующее:

upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt 
upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt

Если это ваше первое использование инструмента CLI aws, вам нужно запустить:

aws configure

Это попросит вас ввести ключ доступа и секрет, а также указать область по умолчанию.

Ответ 2

Существует несколько способов отправки файлов на S3. Я перечислил их ниже вместе с установкой и документацией, если это необходимо.

  • S3CMD: (http://s3tools.org/s3cmd) Вы можете установить это на debian/ubuntu легко через apt -get установить s3cmd, а затем запустить из командной строки. Вы можете включить это в bash script или в свою программу.

  • S3FS: (http://www.pophams.com/blog/howto-setups3fsonubuntu1104x64 и https://code.google.com/p/s3fs/wiki/InstallationNotes)... Это монтирует ведро s3, так что оно выглядит как локальный диск. Для настройки требуется немного больше усилий, но после установки диска вам не нужно ничего делать, чтобы получить файлы в вашем ковше.

  • Если вы используете CMS (в качестве примера можно использовать Drupal), вы можете использовать с помощью модуля для доступа к вашему ведру, например http://drupal.org/project/storage_api

  • Наконец, вы можете использовать реализации языка программирования для обработки всех логических себя, для PHP вы можете начать с этого http://undesigned.org.za/2007/10/22/amazon-s3-php-class и см. документацию здесь http://undesigned.org.za/2007/10/22/amazon-s3-php-class/documentation

Пример реализации PHP:

<?php

    // Simple PUT:
    if (S3::putObject(S3::inputFile($file), $bucket, $uri, S3::ACL_PRIVATE)) {
        echo "File uploaded.";
    } else {
        echo "Failed to upload file.";
    }

?>

Пример s3cmd:

s3cmd put my.file s3://bucket-url/my.file

Изменить

Еще один вариант, заслуживающий упоминания, - это AWS CLI http://aws.amazon.com/cli/ Это широко доступно, например, оно уже включено в AmazonLinux и может быть загружено через Python (который установлен на многих системах, включая linux и windows).

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

Доступные команды, cp ls mb mv rb rm sync website

http://docs.aws.amazon.com/cli/latest/reference/s3api/index.html для взаимодействия с S3

Ответ 3

Установите s3cmd Пакет как:

yum install s3cmd

или

sudo apt-get install s3cmd

в зависимости от вашей ОС. Затем скопируйте данные следующим образом:

s3cmd get s3://tecadmin/file.txt

также ls может отображать файлы.

Для получения дополнительной информации см. this

Ответ 4

Я использую s3cmd для хранения файлов резервных копий базы данных, загруженных из моего экземпляра ec2. После настройки s3cmd, о котором вы можете прочитать на своем сайте, вы можете запустить команду, например:

s3cmd put ./myfile s3://mybucket

Ответ 5

Для этого используйте s3cmd:

s3cmd get s3://AWS_S3_Bucket/dir/file

Посмотрите, как установить s3cmd здесь:

Это работает для меня...

Ответ 6

Все попытки монтировать s3 в качестве псевдо файловой системы являются проблематичными. Это хранилище объектов, а не блок-устройство. Если вы должны установить его, потому что у вас есть устаревший код, который должен иметь локальные пути к файлу, попробуйте goofys. Это примерно в 50 раз быстрее, чем s3fs. https://github.com/kahing/goofys

s3cmd немного длиннее в зубе в эти дни. AWS cli - лучший вариант в наши дни. Синтаксис немного менее удобен, но это еще один инструмент, который вам нужно поддерживать.

Если вы можете придерживаться доступа к http. Это облегчит вам жизнь в долгосрочной перспективе.

Ответ 7

В AWS CLI я использовал следующую команду для копирования файла zip из экземпляра EC2 в S3

aws s3 cp file-name.zip s3://bucket-name/

Ответ 8

Я думаю, что лучший ответ на самом деле выше - использовать команду aws, но для случаев, когда вы не хотите беспокоиться об установке чего-либо еще, также стоит упомянуть, что вы можете просто загрузить файл через HTTPS, например, открыть браузер и перейдите к:

https://s3.amazonaws.com/ (имя_кармана) / (относительный_путь) / (имя_файла)

Это также означает, что вы можете просто использовать wget или curl для переноса из приглашений оболочки.