【问题标题】:Azure Blob Storage - currupted MD5sAzure Blob 存储 - 损坏的 MD5
【发布时间】:2014-03-24 11:11:28
【问题描述】:

我想知道在进行文件复制时,blob 的 MD5 属性是否会随着时间的推移而损坏。

是否有任何休息调用使 blob 重新计算其 md5 属性?

我正在使用 Cloud berry,之前我遇到过问题,并开始怀疑其中是否真的存在错误。我好像越来越多了

Microsoft.WindowsAzure.Storage.StorageException: Calculated MD5 does not match existing property

使用 c# azure storage nuget 包下载文件时。对文件所做的唯一更改是使用 cloudberry 手动将一些副本从一个存储帐户复制到另一个存储帐户。有没有其他人看到类似的问题?

【问题讨论】:

    标签: azure


    【解决方案1】:

    是否有任何休息调用使 blob 重新计算其 md5 属性?

    据我所知,没有 REST API 调用来重新计算 blob 的 MD5 属性。您可以做的是根据 blob 的数据计算 MD5 并更新 blob 的 MD5 属性。

    Microsoft.WindowsAzure.Storage.StorageException:计算的 MD5 确实 与现有属性不匹配

    您实际上可以使用以下代码绕过此错误:

            BlobRequestOptions options = new BlobRequestOptions()
            {
                DisableContentMD5Validation = true,
            };
            blockBlob.DownloadToStream(memoryStream, null, options);
    

    在此处了解更多信息:Azure Storage Calculated MD5 does not match existing property

    因此,您的方法是首先使用上面的代码下载 blob 内容,重新计算内容的 MD5 并通过指定新的 MD5 来更新 blob 的属性。

    我没有使用过 Cloudberry,所以如果它有任何问题,我无法真正发表评论。我建议在他们的支持论坛上与他们联系。

    【讨论】:

    • 猜猜我只需要做一些测试来确定它们是否也被破坏了。我不会禁用 md5 验证。在下载您知道它没有损坏的数据时,它是一个很好的功能。猜猜我只需要编写一个批处理作业来检查所有文件,看看它们中的任何一个实际上是否有错误的 md5。问题只是我们在谈论 100GB 的数据。我想我必须旋转一个工人角色才能做到这一点:)
    • 这个属性其实在c#sdk中默认设置为true
    猜你喜欢
    • 2012-10-12
    • 2017-08-08
    • 2013-04-26
    • 2021-11-04
    • 2014-12-21
    • 2016-04-27
    • 2017-01-27
    • 2018-07-12
    • 2012-05-02
    相关资源
    最近更新 更多