监听FTP服务器来获取读写完成的文件

当通过FTP客户端上传文件到服务器时,需要确保在文件写入完成后进行处理。可以采用检查文件状态变化或等待一段时间再进行stat()检查的方式来判断文件是否已写入完成。此外,依赖FTP服务器的文件锁可能不实际,因为许多Linux FTP服务器不支持文件锁定。常见的解决方案包括上传“完成”文件、将文件上传到临时目录或使用临时文件名,然后在上传完成后进行原子移动或重命名。
摘要由CSDN通过智能技术生成

问题场景

文件通过ftp客户端上传到ftp服务器,服务器段需要及时的把读写完成的文件保存到其他storage中(或者处理)。这就需要保证监听程序能够监听该文件,判断该文件已经被写完成了,才能够做后续处理,否则接受到的是一个不完成的文件。(主要场景是ftp客户端上传的文件是不可控的,就是不是你自己控制的。所以加校验码、文件名后缀等方式不可行) 类似的问题在stackoverflow 


当然,比较合理的方式有;

通过文件状态判断文件是否写入完成

I use ftputil to implement this work-around:

  1. connect to ftp server
  2. list all files of the directory
  3. call stat() on each file
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值