代码之家  ›  专栏  ›  技术社区  ›  Janusz Skonieczny

如何检测blobstore条目是否是图像,以便get-serving-url可以工作?

  •  1
  • Janusz Skonieczny  · 技术社区  · 14 年前

    我有一个由Google应用引擎blobstore支持的通用文件存储,当我向用户显示它的内容时,我想将图像与其他文件区分开来,我想为每个图像显示缩略图。

    蟒蛇 get_serving_url 函数不关心(至少在DEV服务器上),如果给定的BULB实际上是一个图像,Java getServingUrl 引发异常…

    所以我的问题是:如何在python中检测blob存储区条目是否是图像,这样我就可以得到一个服务URL并在UI中使用它了?

    编辑:

    在生产中,巨蟒正在投掷 NotImageError GETXServices 不支持blobit的调用只是没有文档记录,而且在dev服务器上也没有这样做。

    2 回复  |  直到 14 年前
        1
  •  0
  •   Matthew H    14 年前

    您可以将调用放入try…except块中,捕获在发现对象不是图像时引发的异常。

        2
  •  3
  •   Andrew    14 年前

    根据图像上载到blobstore的方式,它们可能都包含它们的mime类型,您可以尝试使用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.