来自Blobstore的Blobkey Google应用引擎 Python
如何从一个存储大文件的地方(叫做blob store)获取到一个blob的关键字(blob key)?然后再根据这个关键字获取到图片的链接?
下面是一个示例代码:
class Next(webapp.RequestHandler):
def get(self):
userTable_name=self.request.get('userTable_name')
data = db.GqlQuery("SELECT * "
"FROM userTable "
"WHERE ANCESTOR IS :1 "
"ORDER BY date DESC LIMIT 10",
userTable_key(userTable_name))
self.response.headers['Content-Type'] = 'text/plain'
for user in data:
blobURL = get_serving_url(user.imageblob.key(), size=None, crop=False)
self.response.out.write(blobURL)
我正在使用GqlQuery来获取一组大文件(比如用户的图片文件),对于每个大文件,我需要找出它的BlobKey。根据我的观察,“user.imageblob.key()”似乎并不能返回这个blob的关键字……?
1 个回答
0
我搞明白了!原来我把“把图片作为二进制数据添加到数据存储”跟“把图片添加到二进制存储”搞混了。
BlobReferenceProperty是指向上传并存储在二进制存储中的对象,而BlobProperty则是直接把二进制数据存储在数据存储中。详细信息可以查看:如何在App Engine中使用get_serving_url?。
所以,get_serving_url()
和user.imageblob.key()
错误地指向了数据存储,而不是二进制存储。
关于如何将图片添加到二进制存储的例子,可以查看:http://code.google.com/appengine/docs/python/blobstore/overview.html