从URL将图像保存到Blobstore的App Engine

1 投票
1 回答
1817 浏览
提问于 2025-04-16 23:33

我正在尝试把一张图片上传到一个叫做blobstore的地方,并且想要得到一个可以用来访问这张图片的链接,目前我做到这一步:

url ='http://ws.audioscrobbler.com/2.0/?method=track.getinfo&api_key=b25b959554ed76058ac220b7b2e0a026&artist=blink-182&track=dammit&format=json'
result = urlfetch.fetch(url=url, deadline=10, method=urlfetch.GET,).content

    if result:
        data = json.loads(result)
        imageUrl = data['track']['album']['image'][3]['#text']


        result = urlfetch.fetch(imageUrl)
        if result.status_code == 200:
            image_result = db.Blob(result.content)

我需要返回这个图片的链接,这样我才能把它和其他信息一起保存。

任何帮助都非常感谢

谢谢你,J

1 个回答

2

你把两件事情搞混了。

db.Blob 是一种存储在模型中的数据类型,叫做“二进制大对象”。它没有“服务网址”。如果你想提供这个数据,你需要写一些代码,从数据存储中加载包含这个数据的模型实例,然后直接返回这个二进制数据。

如果你想单独存储这些二进制数据,并且不依赖于数据存储模型,你需要使用(实验性)blobstore API

文档中有很好的说明,教你如何通过代码将文件写入 blobstore。然后你可以把这个数据传给images API,以获取一个网址:

from google.appengine.api import images
url = images.get_serving_url(blob_key)

撰写回答