Загрузите файл с помощью web2py в Google App Engine

У меня возникла проблема с развертыванием моего приложения, написанного на web2py, в Google App Engine. На локальном хосте все работает хорошо, но на GAE я не могу получить доступ к содержимому загруженного файла.

Когда я проверяю переменную request.vars.my_upload_field на локальном хосте, я получаю: FieldStorage('upload_field', 'my_file.txt', 'Содержимое файла')

Но в GAE у меня есть только: FieldStorage('upload_field', 'my_file.txt')

Содержимого файла нет... Я ничего особенного не делал (полагаю...)

Почему у меня такое поведение и как это исправить?

PS: я использую SQLForm (db.my_table) с полем «загрузить».


person Thomas    schedule 16.04.2011    source источник


Ответы (2)


Подробные инструкции по загрузке web2py и GAE blobstore см. здесь: http://web2pyslices.com/main/slices/take_slice/63

person cfh    schedule 16.04.2011

Я лично не использовал web2py с GAE, но официальную документацию

упоминает что-то о трудностях с загрузкой файлов в файловую систему движка приложения с помощью web2py. Поэтому, вероятно, вы могли бы вместо этого использовать собственные возможности загрузки файлов GAE, как показано в этом Тема ТАК

Надеюсь, что это помогает немного.

person nemesisfixx    schedule 16.04.2011
comment
Спасибо за ваш ответ. К сожалению, если я хочу использовать google.appengine.ext.webapp, я не могу использовать структуру web2py... не так ли? Для файлов размером менее 10 МБ (а шахты меньше 10 КБ) он должен работать правильно... - person Thomas; 16.04.2011
comment
Я попытался добавить вверху моего default.py: if request.env.web2py_runtime_gae: from google.appengine.ext import webapp class GAEHandler(webapp.RequestHandler): def value(self, v): return self.request.get(v) И затем вызвать: myApp = GAEHandler() content = myApp.value('my_upload_field') Но, к сожалению, это не работает... - person Thomas; 16.04.2011