我有连接到SFTP服务器的Logic App,并且由“添加或修改文件”触发器触发。它设置为每10分钟运行一次,查找新文件/修改过的文件并将其复制到Azure存储帐户。
问题是,此SFTP服务器路径设置为每X分钟覆盖一组文件(对此我无法控制),因此,Logic App通常与这些文件的更新过程重叠,并下载仍在写。结果是文件损坏。
是否有方法向When files are added or modified (properties only)
添加过滤器,以便仅考虑修改日期至少为1分钟的文件?
这样,当前正在写入的文件将不会添加到要下载的文件列表中。然后,逻辑应用程序的下一次运行将获取此忽略的文件,依此类推。
UPDATE
根据测试触发器“添加或修改文件”,似乎我们无法在触发器中添加过滤器以过滤至少1分钟前修改的记录。我们只需要获取List of Files LastModified
日期时间并对其进行循环,使用“ If”条件来判断是否应下载它。
更新:
屏幕快照中的表达式是:
sub(ticks(utcNow()), ticks(triggerBody()?['LastModified']))
更新解决方法
当上次修改时间少于1分钟时,是否可以添加“延迟”操作?例如,如果上次修改时间少于60秒,请使用“延迟”等待5分钟,直到覆盖操作完成,然后进行下载。