Загрузка в Blobstore без использования blobstore.create_upload_url

Я хотел бы создать приложение с использованием python в движке приложений Google для обработки загрузки файлов и сохранения их в хранилище blobstore.

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

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

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


person Tony    schedule 14.02.2012    source источник


Ответы (1)


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

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

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

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

person mjibson    schedule 14.02.2012
comment
Однако, если я использую подход 2, каков будет предел размера загрузки? - person Tony; 16.02.2012
comment
Обновлено с учетом лимита для подхода №2. - person mjibson; 16.02.2012