为了验证我的文件是否已正确上传,是否有工具可以在本地为文件生成 Amazon Glacier Tree Hash SHA-256?
答案1
博托有一个实用函数可以做到这一点。
这是一个将其变成命令行工具的包装脚本
#!/usr/bin/env python
import os
import sys
import argparse
import boto
from boto.glacier.utils import compute_hashes_from_fileobj
parser = argparse.ArgumentParser(description='compute amazon tree hashes of files')
parser.add_argument("--quiet", "-q", action='store_true')
parser.add_argument("filename", nargs='+')
args = parser.parse_args()
for filename in args.filename:
with open(filename, 'r') as f:
sha, tree = compute_hashes_from_fileobj(f)
if args.quiet:
print tree
else:
print filename + ":", tree
答案2
整理后,我从亚马逊自己的源代码中制作了一个快速的 Windows 工具来计算哈希值。
https://mega.co.nz/#!HBMQ0ZSL!l0p0AamSpoFxKwDtJU03_uTi9t9hJ-6EVURmOSXSP3Y
答案3
Glacier 文档提供了计算 SHA256 树形哈希的示例代码。
我已经建立了一个Docker 映像运行此示例代码。您可以使用它来计算多个文件的 SHA256 树形哈希:
docker run -it --rm -v `pwd`:/app ggarnier/glacier-sha256-tree-hash:latest <file1> <file2> ...
答案4
这里有一个使用 openssl 的 bash 脚本实现:https://github.com/numblr/glaciertools