如何在事件网格通知或 API 中从 Azure Blob 检索文件元数据?

问题描述 投票:0回答:1

我们有一个现有的 AppExchange 应用程序将 Salesforce 与 Azure Blob 存储集成,并且需要有关在使用 Azure 事件网格通知或 API 时检索文件元数据的指导。

场景

  1. 将元数据上传到 Azure Blob 的文件:

    • 元数据(键值对)是否反映在事件网格通知中?
    • 如果是,我们计划使用 Apex REST 解析器来处理元数据并在 Salesforce 中创建记录。
  2. 添加/更新现有文件的元数据:

    • 此操作是否会触发事件网格通知?
    • 如果是,通知是否包含有关元数据添加或更改的详细信息?
    • 如果没有,是否有其他方法来获取更新的元数据,也许是在收到事件通知后调用 API(来自 Salesforce)?

迄今为止我们的发现

    发送到我们的 Apex REST 解析器以进行文件上传的事件网格通知中
  • 元数据不包含
  • 这限制了我们在事件通知后直接处理元数据的能力。

我们需要什么帮助

  • 有没有办法直接或通过配置在事件网格通知中包含元数据?
  • 如果没有,我们收到事件通知后可以使用什么API或方法来获取元数据?
  • 对于添加或更改现有文件的元数据的情况有任何解决方法吗?

如果这有助于检索元数据,我们愿意在收到事件通知后从我们的 Apex REST 解析器调用 API。

提前感谢您的见解和建议!

azure salesforce azure-blob-storage metadata
1个回答
0
投票

基于 Blob 存储的 Azure 事件网格 事件架构,Blob 存储事件数据中不包含元数据属性。

enter image description here

Azure Blob 存储事件网格通知通常包括 Blob URL、类型、大小和内容类型等详细信息,但它们不直接在事件通知中包括元数据(键值对)。

事件网格通知仅针对BlobCreatedBlobDeletedBlobRenamed等操作触发。

单独修改元数据(例如使用

Set Blob Metadata
操作)不会生成事件。事件网格触发器与内容更改相关联,而不是与元数据修改相关联。

例如,如果您更新现有 blob 的元数据,则不会触发任何事件网格事件。

Azure Function

检索元数据

由于事件网格通知中不包含元数据,因此您可以使用

Azure Storage Blob REST API
检索其他 Blob 详细信息,例如其 URL、类型和大小。要获取 Blob 的元数据,请使用以下
GET
请求:

GET https://myaccount.blob.core.windows.net/mycontainer/transcript.html?comp=metadata&YOURSASTOKEN

设置元数据

要设置 blob 的元数据,您可以使用

PUT
操作,格式如下:

PUT https://<account>.blob.core.windows.net/<container>/<blob>?comp=metadata&YOURSASTOKEN

请参阅此 MSDOC 了解如何为 Azure 存储生成 SAS 令牌。

Azure

© www.soinside.com 2019 - 2024. All rights reserved.