当前位置: 技术问答>linux和unix
如何保证ftp上传完一个文件后,服务器端的程序再处理.
来源: 互联网 发布时间:2016-04-01
本文导语: 机器C不断向机器S以FTP方式上传文件,S则有个程序不断处理这些文件。 目前的问题是,如何保证程序处理的文件都是已经上传完毕的。而不是正在传的。 也就是说,程序碰到一个文件,能够判断出该文件是否已经上...
机器C不断向机器S以FTP方式上传文件,S则有个程序不断处理这些文件。
目前的问题是,如何保证程序处理的文件都是已经上传完毕的。而不是正在传的。
也就是说,程序碰到一个文件,能够判断出该文件是否已经上传完毕的文件?
目前的问题是,如何保证程序处理的文件都是已经上传完毕的。而不是正在传的。
也就是说,程序碰到一个文件,能够判断出该文件是否已经上传完毕的文件?
|
不好判断,除非该文件定义了明确的文件结束标志。
其实有个笨办法,就是穿完一个文件后再传一个空文件过去,比如:
c向s发送了一个文件file1,传送完毕后再传一个空文件过去这个文件叫file1.end
在s如果检测到file1.end存在则证明这个文件是传送完毕的。
其实有个笨办法,就是穿完一个文件后再传一个空文件过去,比如:
c向s发送了一个文件file1,传送完毕后再传一个空文件过去这个文件叫file1.end
在s如果检测到file1.end存在则证明这个文件是传送完毕的。
|
FTP是自己写的还是机器S系统自带的?
|
没错,在linux下mv文件是原子操作,不用担心。函数rename
|
客房端是自己写的那你可以在传完一个文件后给服务器发个消息,告诉服务器哪个文件已经传送完成了
服务器收到这个消息就去处理
服务器端起个进程来监听客户端的消息
服务器收到这个消息就去处理
服务器端起个进程来监听客户端的消息
|
同意五楼的。其实我觉得S段的处理程序不需要判断传输完毕:它只需要不断刷新B目录下看有没有新文件,如果有,这个文件肯定是传输完毕的(原理:vsftpd接受client的命令,将该传输完毕的文件从A目录mv过来的)。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。