[Amazon-web-services] Как передавать файлы между AWS s3 и AWS ec2


Answers

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

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

  • 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

Question

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

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

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



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

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

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




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

yum install s3cmd

или

sudo apt-get install s3cmd

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

s3cmd get s3://tecadmin/file.txt

Также ls может перечислить файлы.

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