python - 解析 Azure Blob 内容-MD5

标签 python ruby azure md5

以下 block 是 Azure Blob 存储在请求 XML 格式的容器列表时返回的内容。

<Blob>
  <Name>commits-dump.2015-10-03.tar.gz</Name>
  <Url>https://ghtstorage.blob.core.windows.net/downloads/commits-dump.2015-10-03.tar.gz</Url>
  <Properties>
    <Last-Modified>Wed, 09 Dec 2015 18:48:28 GMT</Last-Modified>
    <Etag>0x8D300C95405378B</Etag>
    <Content-Length>189598959329</Content-Length>
    <Content-Type>application/octet-stream</Content-Type>
    <Content-Encoding/>
    <Content-Language/>
    <Content-MD5>gzmOYbF+TJGlvQTKPz84PQ==</Content-MD5>
    <Cache-Control/>
    <BlobType>BlockBlob</BlobType>
    <LeaseStatus>unlocked</LeaseStatus>
  </Properties>
</Blob>

我的问题是:如何解析 Content-MD5 字段(在 Ruby/Python 中)并将其转换为 Linux md5sum 实用程序所需的内容?

对于此特定文件,等效的 md5sum 为:83398e61b17e4c91a5bd4ca3f3f383d

最佳答案

您可以从本地文件创建 md5 并与 azure 内容 md5 进行比较

下面是Python代码

def md5(fname):
   hash_md5 = hashlib.md5()
   with open(fname, "rb") as f:
       for chunk in iter(lambda: f.read(4096), b""):
           hash_md5.update(chunk)
   return base64.b64encode(hash_md5.digest()).decode('utf-8')

关于python - 解析 Azure Blob 内容-MD5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46646802/

相关文章:

python - 在 Ubuntu 上使用 Python 的 Azure WebApp 中的连接泄漏

azure - 在 Ansible 中使用 Azure 标签作为 playbook

python - 如何使用azure DevOps python API的文档,我试图在进行API调用时获取对象拥有哪些成员?

Python:创建以列表索引号为键并以列表元素为值的字典?

python - 如何有效地在大型排序数组中找到最接近另一个值 X 的值

ruby - 使用 ruby​​ 调整动画 GIF 图像的大小?

ruby - 无论 ruby​​ 版本如何,都拆分 utf8 字符串

python - 因未知原因收到 TypeError

python - 需要帮助在 python 中找到一组数字的平均值

Java 有 FindBugs。 Ruby 的等价物是什么?