什么是BlobInfo对象的md5_hash属性?

时间:2011-11-26 11:25:21

标签: python google-app-engine blobstore

如果我打电话

blobsotre.BlobInfo.properties() 

函数返回

set(['filename', 'creation', 'content_type', 'md5_hash', 'size'])

但如果我打电话

a = blobstore.BlobInfo.all()
obj = a.fetch(1)[0]
print obj.md5_hash

函数引发异常

AttributeError(name) AttributeError: md5_hash

BlobInfo对象的md5_hash属性是什么意思? 附:我想查看Blobstore中不存在哪些上传文件。

3 个答案:

答案 0 :(得分:1)

加密哈希函数可以用于很多事情:

  • 为文件/ blob提供完整性检查值以检测更改
  • 为用于引用内容的文件/ blob提供唯一标识符
  • 启用快速查找哈希表的内容
  • 启用快速搜索重复文件

“预期”使用当然取决于blobstore支持的应用程序 - 您是构建购物车,数据缓存,还是地图缩减处理应用程序,还是什么?

答案 1 :(得分:1)

您展示的代码在我shell.appspot.com

上工作正常
>>> from google.appengine.ext import blobstore
>>> blobstore.BlobInfo.properties()
set(['filename', 'creation', 'content_type', 'md5_hash', 'size'])
>>> o = blobstore.BlobInfo.all().get()
>>> o.md5_hash
u'5d41402abc4b2a76b9719d911017c592'

您必须做一些与示例代码中的内容不同的内容。你能粘贴你的确切代码和完整的堆栈跟踪吗?

答案 2 :(得分:1)

你可能有没有写入md5_hash的BlobInfo对象,包括blobstore.BlobInfo.all()返回的第一个结果

您可以在开发服务器的交互式控制台中轻松查看:

from google.appengine.ext import blobstore

query1 = blobstore.BlobInfo.all()
query2 = blobstore.BlobInfo.gql("WHERE md5_hash != ''")

print query1.count(), query2.count()
# for me this returns '100 85'