【问题标题】:How to retrieve azure blob storage file attributes such as create data and audit trail in c#如何在 C# 中检索 Azure Blob 存储文件属性,例如创建数据和审计跟踪
【发布时间】:2016-02-04 18:10:57
【问题描述】:

我正在尝试创建一个解决方案,允许我的客户将他们的文件存储在 azure blob 存储中。

当我这样做时:

foreach(var blob in list.OfType<CloudBlockBlob>())
        {
            blob.FetchAttributes();
            var file = new FileViewModel()
            {
                 Name = blob.Name,
                  Modified= blob.Properties.LastModified,
                  Size = blob.Properties.Length,
                   Created= xxx
            }
        }

看起来没有创建日期属性,只有 lastModified。这是否意味着我必须自己将创建日期放入元数据属性中?

我是 Azure blob 存储的新手,需要生成审核报告(例如,当文件被创建、修改和访问时),我是否需要将所有信息放入我的数据库或文件的元数据中?如果客户覆盖存储在 blob 中的现有文件,是否会丢失现有元数据?

【问题讨论】:

  • 对于Created 日期属性,它已添加到存储客户端库中,以version 9.2.0 开头。请参阅此answer 了解更多信息。
  • 现在有 Created 属性 :)

标签: c# azure azure-blob-storage


【解决方案1】:

您的观察是正确的。没有属性可以告诉您何时创建 blob。它只有一个属性,可以告诉您上次修改 blob 的时间。

如果您想将创建日期存储为元数据,这会起作用,但请记住,更新 blob 时元数据将被覆盖,除非您通过在更新 blob 之前手动获取元数据并将其与 blob 更新一起保存来手动保留元数据操作。

更好的方法是结合使用 Azure 表存储和 blob 存储。在这种方法中,当创建 blob 时,您将一个条目写入 Azure 表存储。此外,当更新 blob 时,您会在 Azure 表存储中创建另一个条目。这样您就可以建立审计跟踪了。

如果您有兴趣保留 Blob 的历史记录(例如,用户上传了一个文本文件,然后又上传了另一个文本文件,并且您想跟踪这两个文本文件的内容),那么您可以做的是拍摄快照更新之前的 blob。它将做的是创建现有 blob 的只读副本。创建快照后,该过程会返回一个日期/时间值,您可以将其与更新的条目一起存储在表存储中。

猜你喜欢
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
  • 2016-09-15
  • 2020-01-01
  • 2021-12-23
  • 2014-12-30
  • 2011-08-25
  • 1970-01-01
相关资源
最近更新 更多