微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure Blob 更改源缺少 Blob 追加事件

如何解决Azure Blob 更改源缺少 Blob 追加事件

我正在试用 Azure Blob 更改提要功能,但它对我来说使用附加 Blob 的行为很奇怪:提要中缺少追加事件。

我的场景是:

  1. 创建存储帐户,启用更改提要功能Change feed enabled

  2. 如果不存在则创建 Append Blob (1) 并将一些输入添加到其中 (2)。

     private void WriteBlob(string input)
     {
         MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(input));
    
         try
         {
             if (client == null)
             {                    
                 var credential = new ClientSecretCredential("...","...");
                 client = new AppendBlobClient(new Uri("..."),credential);
             }
    
             client.CreateIfNotExists(); // (1)
             client.AppendBlock(stream); // (2)
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.Message);
         }
     }
    
  3. 在单独的控制台应用中获取更改提要条目。

     public static List<BlobChangeFeedEvent> GetChanges()
     {
         var credential = new ClientSecretCredential("...","...");
         BlobChangeFeedClient blobChangeFeedClient = new BlobChangeFeedClient(new Uri("..."),credential);
    
         List<BlobChangeFeedEvent> events = new List<BlobChangeFeedEvent>();
         foreach (BlobChangeFeedEvent changeFeedEvent in blobChangeFeedClient.GetChanges())
         {
             events.Add(changeFeedEvent);
         }
         return events;
     }
    

问题是,在运行几次 WriteBlob 方法后,我只得到与 blob 创建相对应的单个更改提要事件,提要中缺少后续追加,但是输入已成功附加到 blob资源。

问题是为什么它会这样工作?我没有发现关于文档中更改提要的附加 Blob blob 类型有什么特别之处。

解决方法

目前,不支持 append eventappend blob

根据 this doc,仅支持以下 event types

  • Blob 创建

  • BlobDeleted

  • BlobPropertiesUpdated

  • 已创建 BlobSnapshot

并且在 Azure.Storage.Blobs.ChangeFeed 包的 source code 中,没有 append event type

已提交其中的 feature request,希望可以在以后的版本中添加。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。