获取 Azure blob 上次修改属性的空值

Var*_*pai 2 c# azure azure-storage-blobs

当我尝试获取 Azure Blob 的 LastModified 属性时,我得到了null,下面是相同的片段。

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("account");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("folder");
var blobs = container.ListBlobs();
foreach (var blob in blobs)
{
CloudBlockBlob blockBlob =container.GetBlockBlobReference(blob.ToString());
var timemodified = blockBlob.Properties.LastModified;
}
Run Code Online (Sandbox Code Playgroud)

在上面的blob 中获取的值不是 CloudBlobDirectory。在此先感谢您的帮助。

Gau*_*tri 5

您出现此行为的原因是因为当您执行以下代码行时:

CloudBlockBlob blockBlob = container.GetBlockBlobReference(blob.ToString());
Run Code Online (Sandbox Code Playgroud)

它本质上创建了一个新的CloudBlockBlob对象实例,并且它的属性被初始化为默认值。您需要FetchAttributes对此调用方法来填充属性。

此外,当您列出 blob 时,也会获取 blob 的属性。所以你不需要创建一个新的CloudBlockBlob. 只需使用blob您获得的对象作为列表结果并使用那里的属性。所以你的代码是:

        foreach (var blob in blobs)
        {
            var timemodified = blob.Properties.LastModified;
        }
Run Code Online (Sandbox Code Playgroud)