如何使用 EventGrids BlobCreated 事件数据中的 URL 获取 Blob 的路径?



我正在使用逻辑应用创建一个工作流,每次创建新 blob 时都会触发该工作流。作为触发器,我处理EventGrids BlobCreated事件。事件正文中的数据为我提供了 blob 的完整 URL,因此我有一个完整的绝对 URL。接下来,我使用Get Blob Content操作来获取 blob 的内容。据我所知,此操作将 Blob ID 或路径作为输入。

现在问题来了。我正在使用uriPath函数将URL转换为Path,但似乎它不支持某些字符(例如^(。使用encodeURIComponent对 URL 进行编码无济于事。

在这两种情况下,我都得到错误:

The template language function 'uriPath' expects its parameter to be a well-formed absolute URI

如果没有任何特殊字符,则不会发生这种情况。这似乎有问题,因为允许创建具有特殊字符(如^(的 blob。

是否有其他方法可以检索新创建的 blob 的路径?我是否可能使用与我应该使用的不同模板函数?或者,也许还有另一种方法可以在不使用其路径的情况下获取 blob 的内容?

我无法重现您提到的错误。创建文件名中包含^字符的 Blob 时,逻辑应用操作可以毫无问题地获取 Blob 内容。在Get_blob_content_using_path操作背后的代码下方

"Get_blob_content_using_path": {
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['azureblob']['connectionId']"
}
},
"method": "get",
"path": "/datasets/default/GetFileContentByPath",
"queries": {
"inferContentType": true,
"path": "@{split(triggerBody()?['subject'], '/')?[4]}/@{split(triggerBody()?['subject'], '/')?[6]}",
"queryParametersSingleEncoded": true
}
},

呵呵

相关内容

  • 没有找到相关文章

最新更新