Непосредственное размещение данных в магазине Blobstore AppEngine

Стандартный API AppEngine предполагает, что файлы загружаются из HTML-формы. Я пытаюсь отправить файл в хранилище BLOB-объектов из метода REST API, который может быть вызван клиентом, отличным от Html (Flash, iPhone и т. Д.)

Код, который я пытаюсь заставить работать:

# Get the blobstore upload url    
upload_url = blobstore.create_upload_url("/activities/upload_finished");

# Make sync call to the blobstore url to post our image
result = urlfetch.fetch(url=upload_url,
                        payload=request.FILES,
                        method=urlfetch.POST,
                        headers={'Content-Type': 'multipart/form-data'})

Я получаю следующую ошибку:

ValueError: недопустимая граница в

Есть идеи?
Кто-нибудь пробовал отправлять сообщения в blobstore не через веб-форму?

составная форма: ''


person Eran Kampf    schedule 27.01.2010    source источник


Ответы (2)


App Engine (версия 1.4.3) позволяет напрямую записывать данные в хранилище blobstore.
Вам больше не нужно использовать метод URL-адреса загрузки.

person Shay Erlichmen    schedule 07.09.2010
comment
правильно, обратите внимание, что эта функция отмечена как экспериментальная (не знаю, что это значит) - person Yonatan Maman; 31.03.2011
comment
@Yonatan Это означает, что не плачьте, если это не сработает и сломает ваш сайт :), а также мы можем изменить API до окончательной версии - person Shay Erlichmen; 31.03.2011
comment
похоже, что сейчас он устарел - person emerix; 12.10.2014

Вы не можете превратить обычную публикацию в составную форму, просто указав тип контента - вы просто отправляете данные в кодировке URL с неправильным типом контента.

Вам нужно будет собрать правильную составную форму - используя модуль email или вручную, например this.

Также см. этот вопрос.

person Nick Johnson    schedule 28.01.2010