如何在Azure Blob存储中获取目录的“上次修改时间”属性

时间:2019-12-13 10:12:22

标签: c# azure asp.net-core azure-storage azure-storage-blobs

我试图了解用于管理目录的Azure Blob存储服务。如何获取Azure 目录(CloudBlobDirectory)的上次修改日期。我找不到任何简单的答案可以简单说明这种情况是否可以实现。

我也试图为 Directory 获取此最后修改的属性,但是它总是返回 null

类似于下面的代码示例

(CloudBlobDirectory)item.Properties.LastModified.Value.LocalDateTime

我希望对目录进行最后修改,例如Windows目录。

请让我知道如何获取Azure目录的最后修改日期,或者如何实现与Windows一样的效果??

  

我正在尝试在ASP.NET Core应用程序(C#)中实现这一目标

预先感谢

2 个答案:

答案 0 :(得分:1)

据我所知Azure Blob Storage structure如下

  • 您连接到存储帐户
  • 存储帐户中有零个或多个容器
  • 每个容器中有零个或多个斑点

与Windows文件系统中的文件不同,blob名称中可以包含/个字符,给人以目录的感觉。

API使您可以像使用子文件夹那样使用它,从而可以列出以something/开头但实际上不是blob存储中的文件夹的blob。

因此,请求CloudBlobDirectory的任何元数据属性是没有意义的,因为它们实际上并不存在。

答案 1 :(得分:0)

我建议使用Microsoft Azure.Storage.Blobs (12.X.X)中的新软件包
以下是获取容器和Blob的Last Modified属性的示例。

    //using Azure.Storage.Blobs;
    //using Azure.Storage.Blobs.Models;

    private static void GetContainerLastModified()
    {
        BlobContainerClient container = new BlobContainerClient(connectionString, "container1");

        BlobContainerProperties properties = container.GetProperties();

        Console.WriteLine(properties.LastModified);
    }

    private static void GetBlobLastModified()
    {
        BlobClient blob = new BlobClient(connectionString, "container1", "file1.txt");

        BlobProperties properties = blob.GetProperties();

        Console.WriteLine(properties.LastModified);
    }