Загружать файлы из GAE в S3 напрямую

Я создаю файлы XML в своем веб-приложении GAE, и я хотел бы разместить их где-нибудь. Ссылка должна соответствовать HOST_URL + имя файла. Таким образом, Amazon S3 выглядит так, как будто он работает — я могу загрузить файл, и URL-адрес указывает прямо на файл. Теперь мой вопрос - как я могу загрузить файлы из GAE в S3? Amazon SDK не работает в GAE. Каков лимит загрузки из GAE? Это 1 МБ или 32 МБ? Можете ли вы предоставить пример HTTP-запроса для загрузки данных непосредственно в S3?

Будет ли проще использовать API Blobstore? Каков предельный размер файла для загрузки файла, созданного в GAE, который необходимо загрузить напрямую в Blobstore API?

Спасибо.


person Daniel Novak    schedule 30.09.2011    source источник
comment
Как вы думаете, почему Amazon SDK does not work on GAE?   -  person AlikElzin-kilaka    schedule 28.04.2014


Ответы (1)


Как вы уже заметили, API-интерфейсы S3 плохо работают с GAE. Для хранения файлов в GAE вы можете использовать хранилище BigTable, Blobstore или Google, поэтому выберите вариант, который лучше всего соответствует вашим потребностям. Есть хорошая статья, описывающая их все с примерами кода здесь< /а>

Вы можете сохранить имя файла и местоположение большого двоичного объекта в большой таблице. После того, как ваши данные будут храниться в GAE, вы можете создать специальный сервлет, который будет принимать имя файла, находить соответствующую информацию о данных в большой таблице, извлекать ее, например, из blobstore и возвращать пользователю (просто идея).

person Kris    schedule 30.09.2011
comment
Спасибо за ваш ответ. К счастью, есть экспериментальная функция, позволяющая программно создавать файлы в Blobstore (code.google.com/appengine/docs/java/blobstore/) — так что эта часть будет работать. Но каков лимит загрузки файлов в вашем сценарии? 1. создать файл программно в Blobstore, 2. создать запись в BigTable для ключа, 3. пользователь вызывает сервлет, который будет обслуживать файл из Blobstore. В этом случае ограничение на размер загружаемого файла составляет 32 МБ? - person Daniel Novak; 30.09.2011
comment
Вы можете получить максимум 32 МБ за один вызов API к службе blobstore, если этого недостаточно для вас, чтобы использовать вариант хранилища Google. - person Kris; 30.09.2011
comment
Размер программно созданных BLOB-объектов не ограничен, и пользователи могут загружать их все сразу, когда вы обслуживаете их с помощью API обслуживания BLOB-объектов. - person Nick Johnson; 04.10.2011