从URL将图像保存到Blobstore的App Engine
我正在尝试把一张图片上传到一个叫做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)