Назад | Перейти на главную страницу

Как загрузить файлы с сервера Amazon EC2 в корзину S3?

Как по умолчанию загружать файлы с веб-сервера EC2 в корзину S3 для доставки контента?

Ответ скорее зависит от цели. Например, если ваш экземпляр EC2 запускает приложение PHP, то использование PHP-SDK будет лучшим путем. Некоторым приложениям может быть полезно смонтировать корзину S3 в качестве локальной файловой системы (например, S3-fuse).

Однако, если вы просто пытаетесь загрузить файл через оболочку из EC2 в S3, я бы порекомендовал Плюсы Тима Кея сценарий. Это автономный сценарий Perl, который может работать без установки или может быть установлен для настройки функций псевдонима. Загрузка файла в существующую корзину с помощью этого сценария сводится к следующему:

s3put bucket_name/filename.ext /path/to/local/file/name.ext

Он поддерживает большинство функций AWS и содержит достаточно подробные сообщения об ошибках, чтобы упростить отладку проблемы.

Вот простой пример, иллюстрирующий загрузку непосредственно в s3

http://sente.cc/upload_to_s3.html

код:

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  </head>
  <body>
  <h3>refresh the page after you've submitted to see your new image</h3>
    <div style="width:300px">
    <form action="http://s3.amazonaws.com/dev.sente" method="post" enctype="multipart/form-data">
      <fieldset>
      <input type="hidden" name="acl" value="public-read" /> <br />
      <i>name of key:</i><input type="text" name="key" readonly="true" value="image.jpg" /> <br />
      <input name="file" type="file" /> <br />
      <input name="submit" value="Upload" type="submit" />
    </fieldset>
    </form>
  </div>
    <br>
    <a href="http://s3.amazonaws.com/dev.sente/image.jpg">http://s3.amazonaws.com/dev.sente/image.jpg</a>
      <br>
      <a href="http://s3.amazonaws.com/dev.sente/image.jpg"><img src="http://s3.amazonaws.com/dev.sente/image.jpg"></a>
    </a>
  </body>
</html>

скопировано из моего ответа на аналогичный вопрос - Вот

Вы можете использовать инструмент s3cp. Это похоже на команду scp. Для загрузки и документации см. http://www.beaconhill.com/opensource/s3cp.html и http://aws.amazon.com/code/Java/3124

После установки вы можете, например, скопировать в S3: s3cp local-file s3: // bucket / object [/]

Используя команды aws cli, если вы используете виртуальную машину EC2 Linux и хотите перемещать файлы, а не каталоги:

     aws s3 put <yourfilename> s3://<yourbucketname>/<yourdirectory>

В общем, если вы загружаете файлы из приложения в S3 с целью настройки CDN для использования в этом приложении, вам нужно сначала посмотреть, не было ли у этого приложения еще функциональности или плагина для этого. . Если вы возьмете Wordpress например, есть W3 Общий кэш плагин, который очень хорошо с этим справляется. Конечно, он написан на PHP и использует вызовы API AWS для обработки загрузок / удалений при необходимости.

Если вы пишете собственное приложение, я бы поискал библиотеки, которые помогают взаимодействовать с AWS. Для Python вам нужно посмотреть Бото например, что позволяет беспрепятственно взаимодействовать с API AWS. Также вы всегда можете проверить Amazon для получения информации о других SDK API, которые вы могли бы использовать.

Через HTTP, точно так же, как вы загружаете на S3 из любого другого места.