2012-02-14 2 views
0

Я хотел бы создать приложение, использующее python в Google App Engine для обработки загрузки файлов и сохранения их в блочном магазине.Загрузка в Blobstore без использования blobstore.create_upload_url

Однако в настоящее время blobstore требует использования blobstore.create_upload_url для создания URL-адреса для отправки сообщения о загрузке файла. Поскольку я загружаюсь с другого сервера, мой вопрос в том, можно ли загрузить файл в gae blobstore без использования этого динамического url из blobstore.create_upload_url?

FYI, это нормально, что я запрашиваю URL-адрес загрузки из сценария python перед отправкой с другого сервера, но это создает дополнительную задержку, и это не то, что я хочу. Также я прочитал, что с использованием так называемого «файлового API» от http://code.google.com/intl/en/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore, но документация, похоже, не охватывала часть при загрузке.

Кроме того, ранее я пытался использовать хранилище данных для загрузки файлов, но максимальный размер файла 1 МБ, которого недостаточно для моего случая. Пожалуйста, посоветуйте, спасибо.

ответ

5

Существует два способа записи файлов в blobstore: 1) с использованием create_upload_url и размещение формы с прикрепленным к ней файлом; 2) запись в blobstore напрямую с использованием API (с решением here для больших файлов).

Если вы хотите удаленный сервер, чтобы иметь возможность загружать, у вас есть те же два варианта:

1) Firsts удаленного сервера запрашивает URL-адрес. У вас есть обработчик, который должен только вернуть такой URL. С помощью этого URL-адреса удаленный сервер обрабатывает правильно закодированное сообщение POST и отправляет его URL-адресу.

2) Вы отправляете данные файла в качестве параметра HTTP в обработчик вашего сервера движков приложений, который использует API записи blobstore, чтобы затем напрямую записать файл. Размер запроса - limited - 32 МБ, поэтому максимальный размер файла, который вы можете записать с помощью этого метода, будет немного ниже этого.

+0

Однако, если я использую подход 2, каков будет размер ограничения загрузки? – Tony

+0

Обновлен с ограничением для подхода №2. – mjibson

Смежные вопросы