如何在逻辑应用程序中附加来自不同文件夹的多个BLOB? [英] How to attach multiple blobs in logic app from different folder?

查看:0
本文介绍了如何在逻辑应用程序中附加来自不同文件夹的多个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三个文件夹出现相同的错误。因此,基本上我无法从这些不同的文件夹中获取内容。有人能帮我附加不同文件夹中的多个文档吗?任何帮助都将不胜感激。谢谢您

推荐答案

您收到此错误可能是由于以下原因之一。

  1. 拼写错误的路径。 如果您提到的路径是手动编写的,请尝试使用打开文件框指向正确的文件夹。因为我看得出你一开始提到了前期设计,但同时提到了它

  2. 连接失败 您可能无法从逻辑应用连接器连接到您的存储帐户。尝试创建与您的存储帐户的新连接。

有人能帮我附加不同文件夹中的多个文档吗?

假设文件夹结构如下

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆