Как определить, является ли запись в Blobstore изображением, чтобы get_serving_url работал? - PullRequest
1 голос
/ 21 августа 2010

У меня есть хранилище файлов общего назначения, поддерживаемое Blobstore Google App Engine. Когда я показываю пользователям его содержимое, я хотел бы отличать изображения от других файлов - я хотел бы показывать миниатюры для каждого изображения.

Python get_serving_url функция не заботится (по крайней мере, на сервере dev), если данный BLOB-объект на самом деле является изображением, java's getServingUrl выдает исключение ...

Итак, мой вопрос: как определить в python, является ли запись хранилища BLOB-объектов изображением, чтобы я мог получить serve_url и использовать его в пользовательском интерфейсе?

EDIT:

На рабочем месте python создает NotImageError на get_serving_url вызов с неподдерживаемым BLOB-объектом - он просто не задокументирован и не делает этого на сервере dev.

Ответы [ 2 ]

3 голосов
/ 22 августа 2010

В зависимости от того, как изображения были загружены в ваш Blobstore, все они могут содержать свои типы MIME, которые вы можете использовать в качестве метода определения того, какие элементы с наибольшей вероятностью могут содержать действительные данные изображения, используя BlobInfo :

blob_info = BlobInfo.get(blob_image_key)

# All valid image formats for the GAE Images service.
image_types = ('image/bmp', 'image/jpeg', 'image/png', 
    'image/gif', 'image/tiff', 'image/x-icon')

if blob_info.content_type in image_types:
    # Obtain your serving URL.
0 голосов
/ 22 августа 2010

Вы можете поместить вызов в блок try ... Кроме блока, перехватывая исключение, которое выдается, когда обнаруживается, что объект не является изображением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...