azure逻辑应用程序如何更改sftp中的特定文件已更改

时间:2018-12-21 08:24:07

标签: azure azure-logic-apps

需要检查sftp站点,并且将有多个文件上传到文件夹。我正在编写逻辑应用程序来处理文件。每个逻辑应用程序将处理一个文件,因为每种文件格式都不同。问题是sftp触发器只能检测到文件夹中ANY文件的更改。因此,如果文件更改,该文件的逻辑应用程序将运行,但是其他逻辑应用程序也将运行,这是不希望的。

我尝试过使用重复触发,然后通过路径操作通过sftp获取文件内容,但是如果指定的文件不存在,那将失败,我想要的是逻辑应用刚刚退出,或者根本不被触发。 / p>

如果特定文件已更新/上传,如何仅触发逻辑应用程序?

2 个答案:

答案 0 :(得分:1)

在您的逻辑应用程序上,您实际上可以使用动态内容和表达式来执行以下操作

decodeBase64(triggerOutputs()['headers'] ['x-ms-file-name-encoded'])

希望有帮助!

答案 1 :(得分:0)

我尝试在条件if file name is equal to abc.txt下运行Azure Web FTP站点,并获得了相同的InputExpression result始终为假。

然后我检查Run Details,发现OUTPUTS中的文件名不是abc.txt,它是用base64加密的。enter image description here

在我的测试中,abc.txt被加密为YWJjLnR4dA==,然后在Logic App条件下将文件名更改为YWJjLnR4dA==,并且可以正常工作。

因此,您可以检查运行历史记录以获取文件名,或者可以使用{strong> Base64 对此site进行加密。

希望他们能为您提供帮助,如果您还有其他疑问,请告诉我。