首页 > 解决方案 > 使用逻辑应用将文件从 SFTP 服务器复制到 Blob 存储

问题描述

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

标签: blobsftpazure-logic-apps

解决方案


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

正如托马斯所说,您可以尝试使用调用的 SFTP 触发器When a file is added or modified来实现您想要的。

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

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

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

更多细节,你可以参考这篇文章


推荐阅读