azure 访问LastModified特性的blob属性

hrysbysz  于 2023-01-09  发布在  其他
关注(0)|答案(2)|浏览(127)

我正在写一段代码来检查一个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
                    });
                }
9o685dep

9o685dep1#

请将blob转换为CloudBlockBlob,这样应该可以解决您的问题。
例如:

if (blob is CloudBlockBlob)
{
    var cloudBlockBlob = (CloudBlockBlob) blob;
    var blobFileName = cloudBlockBlob.Uri.Segments.Last().Replace("%20", " ");
    var blobFilePath = cloudBlockBlob.Uri.AbsolutePath.Replace(cloudBlockBlob.Container.Uri.AbsolutePath + "/", "").Replace("%20", " ");
    var blobPath = blobFilePath.Replace("/" + blobFileName, "");
    var blobLM = cloudBlockBlob.Properties.LastModified; // this is where I cannot access the LastModified poperty
    blobInfos.Add(new BlobFileInfo
    {
        FileName = blobFileName,
        BlobPath = blobPath,
        BlobFilePath = blobFilePath,
        Blob = cloudBlockBlob,
        LastModified = blobLM
    });
}
8hhllhi2

8hhllhi22#

默认情况下不加载元数据和属性,请参见the docs
检索存储资源的属性和元数据值是一个两步过程。在读取这些值之前,必须通过调用FetchAttributes或FetchAttributesAsync方法显式提取这些值。但对资源调用Exists或ExistsAsync方法时除外。调用其中一个方法时,Azure存储在幕后调用适当的FetchAttributes方法,作为对Exists方法调用的一部分。
因此,在访问属性之前执行类似await blob.FetchAttributesAsync();的调用(或任何重载)。
如果需要,还有一个非异步FetchAttributes

相关问题