Google App Engine Python: получить размер загружаемого изображения на стороне сервера

1

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

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, и я получаю исключение
Теги:
image
google-app-engine

2 ответа

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, но мне не хватало этого оператора импорта, поэтому я не мог даже скомпилировать, ссылаясь на RequestTooLargeEror. Спасибо вам большое!
  • 0
    Я почти уверен, что мне пришлось искать в исходном коде appengine, чтобы найти, где эта ошибка была объявлена после того, как я впервые столкнулся с ней. Рад, что это сработало для вас :)
1

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

try:    
    images.Transform()
except Transform.RequestTooLargeError:
    inform
else:
    proceed
  • 0
    Да, это то, что я искал, я просто упустил подходящий способ ссылки на RequestTooLargeError (см. Ответ выше от bboe). Спасибо за вашу помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню