如何在本地为文件生成 Amazon Glacier SHA-256 Tree Hash?

如何在本地为文件生成 Amazon Glacier SHA-256 Tree Hash?

为了验证我的文件是否已正确上传,是否有工具可以在本地为文件生成 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

相关内容