我正在写一段代码来检查一个blob的LastModified属性。看起来这个blob的属性是不可访问的。我该怎么做呢?
注意:在Visual Studio中调试时,我可以看到所需的信息。
下面是我尝试存储blob信息以供以后比较的代码片段
if (blob is CloudBlockBlob)
{
var blobFileName = blob.Uri.Segments.Last().Replace("%20", " ");
var blobFilePath = blob.Uri.AbsolutePath.Replace(blob.Container.Uri.AbsolutePath + "/", "").Replace("%20", " ");
var blobPath = blobFilePath.Replace("/" + blobFileName, "");
var blobLM = blob.Properties.LastModified; // this is where I cannot access the LastModified poperty
blobInfos.Add(new BlobFileInfo
{
FileName = blobFileName,
BlobPath = blobPath,
BlobFilePath = blobFilePath,
Blob = blob,
LastModified = blobLM
});
}
2条答案
按热度按时间9o685dep1#
请将
blob
转换为CloudBlockBlob
,这样应该可以解决您的问题。例如:
8hhllhi22#
默认情况下不加载元数据和属性,请参见the docs:
检索存储资源的属性和元数据值是一个两步过程。在读取这些值之前,必须通过调用FetchAttributes或FetchAttributesAsync方法显式提取这些值。但对资源调用Exists或ExistsAsync方法时除外。调用其中一个方法时,Azure存储在幕后调用适当的FetchAttributes方法,作为对Exists方法调用的一部分。
因此,在访问属性之前执行类似
await blob.FetchAttributesAsync();
的调用(或任何重载)。如果需要,还有一个非异步FetchAttributes。