【问题标题】:get_serving_url in Google App Engine fails in Production Caught InvalidBlobKeyError while renderingGoogle App Engine 中的 get_serving_url 在生产中失败 渲染时捕获 InvalidBlobKeyError
【发布时间】:2013-01-25 14:51:47
【问题描述】:

感谢您抽出宝贵时间阅读我的问题。

我已经成功实现了表单中的用户上传。我也成功地在我的开发服务器上显示上传的文件(图像)。

但是,我无法让它们在生产中显示。

我目前正在使用以下图像过滤器:

@register.simple_tag
def media_file_url(file_obj):
    file_location = file_obj.name.split('/')[0]
    #gives just the key
    return get_serving_url(str(file_location))

在模板中:

 <img class='visual' src='{% media_file_url promotion.image %}' 
    alt='image description' width='70' height='88' />

我已经尝试了上述方法,但没有拆分 file_location。

我在views.py中尝试了一个自定义的url处理程序:

def images(request, resource):
    clean_key = urllib2.unquote(resource)
    return HttpResponseRedirect(get_serving_url(clean_key))

以上所有都在开发中工作,但不是生产。

有人有什么建议吗?

谢谢!!!

【问题讨论】:

  • 你为什么不使用 MEDIA_URL?
  • 看看这个关于创建和使用 get_serving_url 的问题:stackoverflow.com/questions/13810823/…
  • cathy:我试过了,也用于开发,而不是产品。 @voscausa:Django 有点不同 - 文档的链接是我用来尝试渲染此图像的链接。谢谢你们的cmets!

标签: python django google-app-engine blobstore


【解决方案1】:

blob 信息存储在模型的文件信息中。

我能够在我的过滤器中获取服务网址,如下所示:

from google.appengine.api import images

...

@register.simple_tag
def media_file_url(file_obj):
    try:
        return images.get_serving_url(file_obj.file.blobstore_info)
    except:
        return None

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多