Google App Engine и загрузка файлов Amazon S3 - PullRequest
6 голосов
/ 10 июня 2009

Я знаю, что об этом уже спрашивали, но на самом деле нет четкого ответа. Моя проблема в том, что я создал скрипт загрузки файлов для GAE и только после этого узнал, что вы можете хранить файлы только до aprox. 1 МБ в хранилище данных. Я могу остановить вас прямо здесь, если вы скажете мне, что если я включу выставление счетов, ограничение в 1 МБ - это история, но я сомневаюсь в этом.

Мне нужно иметь возможность загружать до 20 МБ на файл, поэтому я подумал, может быть, я смогу использовать Amazon S3. Есть идеи, как этого добиться?

Мне сказали использовать комбинацию GAE + Ec2 и S3, но я понятия не имею, как это будет работать.

Спасибо, Max

Ответы [ 5 ]

13 голосов
/ 10 июня 2009

Из документации Amazon S3 :

  1. Пользователь открывает веб-браузер и получает доступ к вашей веб-странице.

  2. Ваша веб-страница содержит HTTP-форму, которая содержит всю информацию, необходимую пользователю для загрузки контента в Amazon S3.

  3. Пользователь загружает контент непосредственно в Amazon S3.

GAE быстро готовит и обслуживает веб-страницу. Вы загружаете пользователя на S3, длительная операция, но это между браузером вашего пользователя и Amazon; GAE не участвует.

Часть протокола S3 - это success_action_redirect , который позволяет вам указать S3, куда направить браузер в случае успешной загрузки. Это перенаправление может быть в GAE.

3 голосов
/ 10 июня 2009

Google App Engine и EC2 являются конкурентами. Они делают то же самое, хотя GAE предоставляет среду для запуска вашего приложения со строгими языковыми ограничениями, а EC2 предоставляет вам виртуальную машину (например, VMWare) для размещения вашего приложения.

S3, с другой стороны, является необработанным API для хранения. Вы можете использовать SOAP или REST API для доступа к нему. Если вы хотите придерживаться GAE, вы можете просто использовать Amazon S3 Python Library для выполнения вызовов REST с Python на S3.

Вам, конечно, придется платить за использование на S3. Удивительно, насколько гранулирован их биллинг. Когда я начинал, мне буквально платили 4 цента за месяц.

2 голосов
/ 05 января 2010

Для дальнейшего использования Google добавил поддержку для загрузки больших файлов (до 50 МБ): новая функция была выпущена как часть Blobstore API и обсуждается здесь .

1 голос
/ 18 августа 2010

Томас Л. Холэдэй - правильный ответ, я полагаю. В любом случае, на всякий случай вот ссылка на Amazon Web Services SDK для App Engine (Java), которую вы можете использовать, например, загружать файлы из App Engine в Amazon S3. ( Редактировать: О, только что заметил - за исключением S3 ) http://apetresc.wordpress.com/2010/06/22/introducing-the-gae-aws-sdk-for-java/

Автор Адриан Петреску. С его веб-сайта:

[ Это ] версия Amazon Web Services. SDK для Java, который будет запускаться изнутри Google App Engine. Это не работать, если вы просто включили JAR что AWS предоставляет непосредственно в GAE ВОЙНА, потому что модель безопасности GAE не разрешает HTTP Apache Commons Клиент для создания сокетов и низкоуровневые сетевые примитивы это требует установить HTTP соединение; вместо этого Google требует вам сделать все соединения через его утилита URLFetch

0 голосов
/ 10 июня 2009

Некоторые ссылки на Google App Engine + S3:

Предыдущий связанный пост ... предел 10 МБ .

Эта ссылка демонстрирует загрузку небольших файлов . Я не нашел пример больших загрузок ...

Эта ссылка показывает другой подход ( с исправлением известной проблемы )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...