获取Azure blob上次修改的属性的空值
当我尝试获取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; }
在上面的blob中获取的值不是CloudBlobDirectory。 在此先感谢您的帮助。
您获得此行为的原因是因为执行以下代码行时:
CloudBlockBlob blockBlob = container.GetBlockBlobReference(blob.ToString());
它实际上创建了一个新的CloudBlockBlob
对象实例,并将其属性初始化为默认值。 您需要在此上调用FetchAttributes
方法来填充属性。
此外,当您列出blob时,也会获取blob的属性。 因此,您无需创建CloudBlockBlob
的新实例。 只需使用您获得的blob
对象作为列表结果并使用那里的属性。 所以你的代码是:
foreach (var blob in blobs) { var timemodified = blob.Properties.LastModified; }