如何在逻辑应用程序中附加来自不同文件夹的多个BLOB? [英] How to attach multiple blobs in logic app from different folder?
本文介绍了如何在逻辑应用程序中附加来自不同文件夹的多个BLOB?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好,我在蔚蓝逻辑应用程序工作。我的Blob存储中有以下Blob。
Predesign/guid/AdditionalDocument/somefile.ext
Predesign/guid/CalcOutput/somefile.ext
Predesign/guid/DataSheet/somefile.ext
下面的步骤是列出我给出的BLOB示例路径preDesign/GUID(在实际实现中,我将GUID视为动态)。如上所述,在GUID中我有多个子文件夹
然后我有发送电子邮件活动来发送带有附件的电子邮件。当我运行代码时,出现以下错误
{
"status": 404,
"message": "Specified blob PreDesign/1e36d504-7876-41b1-89b3-83d2132fa7c4/AdditionalDocumets/ does not exist.
clientRequestId: fcb3f5d4-aca2-4c8e-bb8d-543d31fa9cb3",
"error": {
"message": "PreDesign/1e36d504-7876-41b1-89b3-83d2132fa7c4/AdditionalDocumets/ does not exist."
},
"source": "azurewebsites.net"
}
其他Documets、CalcOutput和Data Sheet三个文件夹出现相同的错误。因此,基本上我无法从这些不同的文件夹中获取内容。有人能帮我附加不同文件夹中的多个文档吗?任何帮助都将不胜感激。谢谢您
推荐答案
您收到此错误可能是由于以下原因之一。
拼写错误的路径。 如果您提到的路径是手动编写的,请尝试使用打开文件框指向正确的文件夹。因为我看得出你一开始提到了前期设计,但同时提到了它
连接失败 您可能无法从逻辑应用连接器连接到您的存储帐户。尝试创建与您的存储帐户的新连接。
有人能帮我附加不同文件夹中的多个文档吗?
假设文件夹结构如下
Container
|
|
____Directory 1
| ____Blob 1
|
|
____Directory 2
____Blob 2
____File 3
方式-1
您可以有2个List blobs
个连接器,并对它们进行迭代。以下是我的逻辑应用程序的截图以供参考。
输出
目录1中的Blob列表
目录2中的Blob列表
方式2
您可以在for each内使用for each循环。这是我的逻辑应用程序的屏幕截图。
输出:-
这是我的逻辑应用程序的代码视图
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"For_each": {
"actions": {
"For_each_2": {
"actions": {
"Lists_blobs_in_Directory": {
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['azureblob']['connectionId']"
}
},
"method": "get",
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/foldersV2/@{encodeURIComponent(encodeURIComponent(items('For_each_2')?['Path']))}",
"queries": {
"nextPageMarker": ""
}
},
"runAfter": {},
"type": "ApiConnection"
}
},
"foreach": "@body('Lists_Directories_inside_Container')?['value']",
"runAfter": {
"Lists_Directories_inside_Container": [
"Succeeded"
]
},
"type": "Foreach"
},
"Lists_Directories_inside_Container": {
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['azureblob']['connectionId']"
}
},
"method": "get",
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/foldersV2/@{encodeURIComponent(encodeURIComponent(items('For_each')?['Path']))}",
"queries": {
"nextPageMarker": ""
}
},
"runAfter": {},
"type": "ApiConnection"
}
},
"foreach": "@body('Lists_Containers_in_root_folder')?['value']",
"runAfter": {
"Lists_Containers_in_root_folder": [
"Succeeded"
]
},
"type": "Foreach"
},
"Lists_Containers_in_root_folder": {
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['azureblob']['connectionId']"
}
},
"method": "get",
"path": "/v2/datasets/@{encodeURIComponent(encodeURIComponent('AccountNameFromSettings'))}/foldersV2",
"queries": {
"nextPageMarker": "",
"useFlatListing": false
}
},
"runAfter": {},
"type": "ApiConnection"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {
"$connections": {
"defaultValue": {},
"type": "Object"
}
},
"triggers": {
"manual": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request"
}
}
},
"parameters": {
"$connections": {
"value": {
"azureblob": {
"connectionId": "/subscriptions/<YOUR_SUBSCRIPTION_ID>/resourceGroups/<YOUR_RESOURCE_GROUP>/providers/Microsoft.Web/connections/azureblob",
"connectionName": "azureblob",
"id": "/subscriptions/<YOUR_SUBSCRIPTION_ID>/providers/Microsoft.Web/locations/northcentralus/managedApis/azureblob"
}
}
}
}
}
当有许多我们要迭代的文件夹时,这些方法可能有点笨拙。在这种情况下,最有效的方法是使用Azure函数。有关这方面的详细信息,请参阅Get List of all files from all folder
这篇关于如何在逻辑应用程序中附加来自不同文件夹的多个BLOB?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文