微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

'GetBlockBlobReference' 时,天蓝色块块属性为空

如何解决'GetBlockBlobReference' 时,天蓝色块块属性为空

我正在尝试获取 blockblob 的 LastModified 日期。

我发现块 blob 的方式与另一篇 stackoverflow 帖子中显示的方式相同: https://stackoverflow.com/a/60082240/2759759

        var cloudStorageAccount = CloudStorageAccount.Parse(variable);
        var cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
        var cloudBlobContainer = cloudBlobClient.GetContainerReference(BlobContainerName);
        var cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference(blobFile);
        var blobDateTime = cloudBlockBlob.Properties.LastModified; // returns null
        var cloudBlockBlob2 = cloudBlockBlob.CreateSnapshot();
        var blobDateTime2 = cloudBlockBlob2.Properties.LastModified; // returns desired date time information

当上面运行时,blobDateTime 将为空,blobDateTime2 将具有所需的信息。为什么我需要创建快照才能获取上次修改日期? 获取 LastModified 信息的成本最低的方法是什么。创建快照不是即时的,因此如果我只想要修改日期,它可能在后台做的事情比我需要做的要多。

解决方法

这是修复。我只需要添加 FetchAttributes() 代码行。

    var cloudStorageAccount = CloudStorageAccount.Parse(variable);
    var cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
    var cloudBlobContainer = cloudBlobClient.GetContainerReference(BlobContainerName);
    var cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference(blobFile);
    cloudBlockBlob.FetchAttributes();
    var blobDateTime = cloudBlockBlob.Properties.LastModified; // returns good date time information

我不明白为什么 Stack Overflow 中的其他示例都不需要添加“FetchAttributes()”来检索日期修改信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。