云存储:如何检查对象上的 md5

问题描述

我的存储桶中发生了这种情况,我的存储中有名为 red.dat 的文件,一旦此文件更新,jenkins 将定期更新此文件我触发事件以部署此 red.dat 文件,我想要检查更新前后文件的 md5 哈希值,如果值不同,则仅进行部署

这就是我将文件上传到 GCS 的方式

gsutil cp red.dat gs://example-bucket

我已经尝试过这个命令来获取哈希

gsutil hash -h gs://example-bucket/red.dat

结果是这样

Hashes [hex] for red.dat:
    Hash (crc32c):      d4c9895e
    Hash (md5):     732b9e36d945f31a6f436a8d19f64671

我有点困惑如何在更新前后比较 md5,因为文件总是会保持远程位置(GCS)。我想要一些建议或告诉我正确的方向来实现这一点,命令或 ansible 中的解决方案很好

解决方法

您可以对本地文件使用 gsutil hash 命令,然后将输出与您从 gsutil hash 看到的内容与云对象进行比较:

gsutil hash red.dat