使用Logic App将文件从SFTP服务器复制到Blob存储

时间:2018-10-16 17:47:06

标签: blob sftp azure-logic-apps

我想使用逻辑应用程序将文件从SFTP服务器复制到Blob存储。逻辑应用程序每3分钟由“重复发生”块触发,并检查服务器上有哪些文件以进行复制。要检查服务器上有哪些文件,我使用“列出文件夹中的文件”块。复制本身是通过管道运行来执行的。到目前为止,此方法工作正常,但我面临一个问题。如果在触发逻辑应用程序期间,一个文件仍在sftp服务器上的上载过程中,则仅将文件(.txt)已在sftp服务器上的部分复制到Blob存储中。文件的其余部分丢失了,因为我将文件复制到Blob后将其删除。我正在寻找一个仅复制完全上传到sftp服务器的文件的选项。有人知道如何使用逻辑应用程序执行此操作吗?

1 个答案:

答案 0 :(得分:0)

  

我正在寻找一个仅复制完全上传到sftp服务器的文件的选项。

正如Thomas所说,您可以尝试使用名为When a file is added or modified的SFTP触发器来实现所需的功能。

触发器通过轮询SFTP文件系统并查找自上次轮询以来已已被修改的任何文件来工作。某些工具允许保留文件修改时间。

  

当触发器遇到新文件时,它将尝试确保新文件被完全写入。例如,可能正在编写或修改文件,并且在触发器轮询文件服务器时正在进行更新。为了避免返回包含部分内容的文件,触发器将记下最近修改的此类文件的时间戳,但不会立即返回这些文件。仅当触发器再次轮询时,才会返回这些文件。有时,这可能会导致最多两次触发轮询间隔的延迟。

如果要求内容,则触发器不会获取超过50MB的文件

有关更多详细信息,您可以参考此article