azure logic app 如何检查 sftp 中的特定文件已更改

azure logic app how to check a specific file in a sftp is changed

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

我试过使用重复触发器,然后通过路径操作通过 sftp 获取文件内容,但是如果指定的文件不存在,那将失败,我想要的是逻辑应用程序刚刚退出或者最好根本没有被触发.

如果特定文件是 updated/uploaded,如何只触发逻辑应用程序?

我用条件 if file name is equal to abc.txt 尝试了我的 Azure 网站 FTP 并得到相同的 InputExpression result 始终为假。

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

在我的测试中 abc.txt 被加密成 YWJjLnR4dA==,然后我在 Logic App 条件下将文件名更改为 YWJjLnR4dA== 并且它有效。

所以你可以去检查你的 运行 历史获取文件名或者你可以去这个 site 使用 Base64 加密你的文件名。

希望对您有所帮助,如果您还有其他问题,请告诉我。

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

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

希望对您有所帮助!