BlobInfo对象的md5_哈希属性用于什么目的?

2024-10-01 00:25:06 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我打电话

blobsotre.BlobInfo.properties() 

函数返回

^{pr2}$

但如果我打电话

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

函数引发异常

AttributeError(name) AttributeError: md5_hash

BlobInfo对象的md5_哈希属性用于什么目的? P、 我想检查哪些上传的文件不存在于Blobstore中。在


Tags: 对象函数nameobjhashpropertiesfetchall
3条回答

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'

您必须执行与示例代码不同的操作。你能粘贴你的确切代码和完整的stacktrace吗?在

您可能有一个BlobInfo对象,这些对象没有写入md5_散列,包括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'

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

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

“预期的”用途当然取决于blobstore支持的应用程序—您是在构建购物车、数据缓存还是MapReduce处理应用程序,还是什么?在

相关问题 更多 >