Мне потребовалось некоторое время, но мне удалось воспроизвести ваш сценарий, поэтому я настроил среду Python 2.7 (в соответствии с руководством по Обзор Python API изображений и установил всефайлы, необходимые для Django, используя код из официального репозитория и запустив его с помощью официального руководства для Django.
Затем я модифицировал сервисные опросыдля того, чтобы выполнить функции, которые вызывают эти ошибки.
def index(request):
filename_gs=request.GET.get("id")
img = images.Image(filename=filename_gs)
img.resize(width=1000, height=1000)
thumbnail = img.execute_transforms()
И я обнаружил, что действительно вы правы, в функции execute_transforms
возникает и ошибка и останавливает выполнение. Однако у меня не былоОбобщая ошибка, на которую вы ссылаетесь, я получаю следующее:
File "/home/polortiz/DJANGOOO/mytry3/python-docs-samples/appengine/standard/django/polls/views.py", line 48, in index
thumbnail = img.execute_transforms()
File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/api/images/__init__.py", line 810, in execute_transforms
return rpc.get_result()
File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 615, in get_result
return self.__get_result_hook(self)
File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/api/images/__init__.py", line 898, in execute_transforms_hook
raise _ToImagesError(e, self._blob_key)
TransformationError
Я провел дальнейшее исследование, чтобы выяснить, какие могут быть проблемы, которые вызывают эти ошибки, и нашел код библиотеки этой функции . Там вы можете увидеть все исключение, которое возникает:
- BadRequestError: Когда спецификации запросаНеправильно.
- NotImageError: Когда данные изображения не являются изображением.
- BadImageError: Когда данные изображения повреждены.
- LargeImageError: Когда данные изображения приведеныслишком большой для обработки.
- InvalidBlobKeyError: Когда предоставленный ключ BLOB-объекта недопустим.
- TransformationError: При возникновении ошибки во время манипулирования изображением.
- AccessDeniedError: Когда ссылается на ключ BLOB-объектак объекту Google Storage, и приложение не имеет разрешения на доступ к объекту.
- ObjectNotFoundError: Когда ключ BLOB-объекта ссылается на объект, которого больше не существует.
Итак, для решения вашей проблемы было бы здорово проверить все эти пункты.Отвечая на вопросы, заданные в комментариях:
Является ли django несовместимым с Google Imaging API или мне нужно импортировать WebApp2?
Google Imaging API совместим с Django.И не обязательно использовать WebApp2 для обработки http-запросов и ответов.