如何解决'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 举报,一经查实,本站将立刻删除。