blob - 使用逻辑应用将文件从 SFTP 服务器复制到 Blob 存储
问题描述
我想使用逻辑应用将文件从 SFTP 服务器复制到 Blob 存储。逻辑应用每 3 分钟由一个“重复”块触发,并检查服务器上的哪些文件以便复制它们。要检查服务器上有哪些文件,我使用“文件夹中的列表文件”块。复制本身由管道运行执行。到目前为止,这工作正常,但我面临一个问题。如果在触发逻辑应用期间一个文件仍在 sftp 服务器上的上传过程中,则仅将已在 sftp 服务器上的文件 (.txt) 部分复制到 blob 存储。文件的其余部分会丢失,因为我在将文件复制到 blob 后正在删除它们。我正在寻找一个选项来仅复制已完全上传到 sftp 服务器的文件。
解决方案
我正在寻找一个选项来仅复制已完全上传到 sftp 服务器的文件。
正如托马斯所说,您可以尝试使用调用的 SFTP 触发器When a file is added or modified
来实现您想要的。
触发器通过轮询 SFTP 文件系统并查找自上次轮询以来已修改的任何文件来工作。某些工具允许保留文件修改时间。
当触发器遇到一个新文件时,它会尝试确保新文件被完全写入。例如,可能正在写入或修改文件,并且在触发器轮询文件服务器时正在进行更新。为避免返回包含部分内容的文件,触发器将记录最近修改的此类文件的时间戳,但不会立即返回这些文件。只有当触发器再次轮询时,才会返回这些文件。有时,这可能会导致延迟达到触发轮询间隔的两倍。
如果要求内容,触发器不会拾取超过 50MB 的文件。
更多细节,你可以参考这篇文章。
推荐阅读
- assembly - x86_64 intel putnbr 仅正确打印第一个数字
- vba - 确定一个单词是否在匹配的 125 个单词内
- azure - Azure - 机器人频道注册设置已更改,连接已删除
- hadoop - Hadoop ApplicationClassLoader 找不到类
- docker - 使用 ssh 从 git repo 中提取,使用 docker-compose 中的秘密
- python - 如何以 graphml 格式保存 MultiDigraph?
- sockets - 将 Socket 编程从 Ubuntu 移植到 Windows
- r - 如何在 R 中为 Shiny 应用程序输入变量文件?
- go - 继承语法。有什么区别?
- python - 如何在考虑 DST 的同时将 UTC HH:MM(无日期)转换为基于时区的本地时间?