3
A
回答
8
从版本5起,SFTP协议支持锁定。请参阅specification。
您没有指定,您使用的是什么SFTP服务器。所以我假设是最广泛的OpenSSH。 OpenSSH仅支持SFTP版本3,所以它不支持锁定。
无论如何,即使您的服务器支持文件锁定,大多数SFTP客户端/库也不会支持SFTP版本5.即使他们这样做,他们也不会支持锁定功能。请注意,锁是明确的,客户端必须要求它。
有该问题的一些常见的变通办法:
- 作为建议由@ user1717259,可以让客户端上传一个“做”的文件一旦上传完成。让您的自动系统等待“完成”文件出现。
- 你可以有一个专门的“上传”文件夹,并让客户端(自动)将上传的文件移动到“完成”文件夹中。只让您的自动化系统看起来“完成”文件夹。
- 对上传文件(“.filepart”)有一个文件命名约定,并让客户端(原子地)在上传到其最终名称后重命名该文件。让你的自动化系统忽略“.filepart”文件。
有关实施此方法的示例,请参阅(我的)文章Locking files while uploading/Upload to temporary file name。 - 严重的黑客攻击是定期检查文件属性(大小和时间),并考虑上传完成,如果属性在某段时间内没有改变。
7
解决此问题的典型方法是上传您的真实文件,然后上传空白的'done.txt'文件。
在尝试读取真实文件之前,自动系统应等待“完成”文件的出现。
相关问题
- 1. C#锁定机制 - 只写锁定
- 2. 入站sftp通道适配器文件锁定问题
- 3. 表上的锁定机制
- 4. Odoo(OpenERP)锁定机制
- 5. c中的锁定机制#
- 6. iPhone密码锁定机制
- 7. GAE上的锁定机制
- 8. Rsqlite在关机后锁定文件
- 9. .net文件随机访问recoard锁定
- 10. Java文件锁定机制(FileLock等)的问题
- 11. apache camel:使用sftp组件定制sftp配置
- 12. 用于基于文件的进程通信的Java文件锁定机制
- 13. 如何使用SI中提供的文件锁定机制来读取文件
- 14. 骆驼测试sftp复制文件
- 15. 限制Mule在SFTP中挑选文件
- 16. 使用jsch库复制sftp文件
- 17. FileInfo锁定文件!
- 18. HttpPostedFileBase锁定文件
- 19. Java文件锁定
- 20. PowerShell锁定文件
- 21. Linux文件锁定
- 22. System.Reflection.Assembly.LoadFile锁定文件
- 23. 锁定XML文件
- 24. System.IO.File.Create锁定文件
- 25. 关于SQL Server的锁定机制
- 26. 黑莓定制手机锁屏
- 27. SQLite中的显式锁定机制
- 28. shell脚本的锁定机制
- 29. 分布式锁定机制.NET
- 30. ASP.NET MVC对象锁定机制
所以它是一个版本限制:(。不幸的是,在我当前的解决方案中,解决方法不太容易实现,加载目标文件夹中的文件的系统无法在最后重命名它。我看到,我有两个解决方案:将文件放在备用目录中,并构建sh脚本以在目标目录中移动/重命名它们,或尝试将SFTP服务器更新为5+ – CyberDracula 2014-11-19 10:02:57
感谢您的帮助,不需要加载系统无法运行脚本我们决定现在我们将构建一个cron脚本来将文件移动到目标目录 – CyberDracula 2014-11-21 16:22:34
cron脚本如何告诉上传完成? – 2014-11-21 16:44:02