2010-05-14 3 views
1

Я создаю приложение Google App Engine, которое позволяет пользователям загружать изображения; У меня все работает нормально, но я изо всех сил пытаюсь найти способ убедиться, что пользователь не загружает изображение слишком большим (потому что я изменяю размеры изображений, поэтому это приводит к сбою моего сценария python). Когда пользователь загружает большой файл, я получаю эту ошибкуGoogle App Engine Python: размер загрузки изображения на стороне сервера

RequestTooLargeError: The request to API call images.Transform() was too large. 

Я знаю, что есть ограничение на размере на то, что позволяет GAE для этого изображения API, я просто пытаюсь найти способ справиться с этим сервером боковая сторона; что-то в строках

if (image is too large): 
    inform user 
else: 
    proceed 

Мне не повезло найти правильный код python для этого; Может кто-нибудь мне помочь?

+0

хорошо, какой тип объектов/типов делает ваш Transform метод взять? –

+0

Извините, я не совсем понимаю ваш вопрос; Я беру данные из формы HTML, ввода файла, с enctype = multipart/form-data и пытается отправить эти данные в API изображений Google. Я просто пытаюсь проверить, насколько велики эти данные, прежде чем отправить его в Google, и я получаю исключение. – goggin13

ответ

5
from google.appengine.runtime import apiproxy_errors 

... 

try: 
    #the code you are getting the error at 
except apiproxy_errors.RequestTooLargeError, message: 
    print message # or something else 
+0

Отлично, это именно то, что я искал. Я пробовал всевозможные Try-Excepts, но мне не хватало этот оператор import, поэтому я даже не мог скомпилировать его, ссылаясь на RequestTooLargeEror. Большое вам спасибо! – goggin13

+0

Я уверен, что мне пришлось искать исходный код appengine, чтобы найти, где эта ошибка была объявлена ​​после того, как я впервые столкнулся с ней. Рад, что это сработало для вас :) – bboe

1

Я не уверен, что полностью понимаю вашу проблему, но, возможно, попытка будет работать?

try:  
    images.Transform() 
except Transform.RequestTooLargeError: 
    inform 
else: 
    proceed 
+0

Yup, thats, что я искал, я просто упустил подходящий способ ссылаться на RequestTooLargeError (см. Выше ответ от bboe) , Спасибо за вашу помощь! – goggin13

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