Как по умолчанию загружать файлы с веб-сервера 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 из любого другого места.