[d]大侠请留步!!! 怎样判断FTP服务器上的文件与本地文件是否相同?

tunaG 2012-08-28 10:42:49
如题
例:FTP服务器上的文件A内容是不断更新的,下载前先与本地文件A比较下,如果文件不同则下载!!!
求python实现的代码。



---------------------
Double行动:
原帖分数:40
帖子加分:40
...全文
515 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gloveing 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用 5 楼 的回复:
对比MD5值就行了

只知道服务器上ftp server 的 ip、用户名、密码

我怎么获取服务器上的文件的md5值呢?
[/Quote]
这样的话,没办法了,除非:FTP服务器上的文件A也是你在管理
tunaG 2012-08-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
对比MD5值就行了
[/Quote]
只知道服务器上ftp server 的 ip、用户名、密码

我怎么获取服务器上的文件的md5值呢?
qq120848369 2012-08-31
  • 打赏
  • 举报
回复
>>> from ftplib import FTP
>>> ftp = FTP('ftp.cwi.nl') # connect to host, default port
>>> ftp.login() # user anonymous, passwd anonymous@
>>> ftp.retrlines('LIST') # list directory contents
total 24418
drwxrwsr-x 5 ftp-usr pdmaint 1536 Mar 20 09:48 .
dr-xr-srwt 105 ftp-usr pdmaint 1536 Mar 21 14:32 ..
-rw-r--r-- 1 ftp-usr pdmaint 5305 Mar 20 09:48 INDEX
.
.
.
>>> ftp.retrbinary('RETR README', open('README', 'wb').write)
'226 Transfer complete.'
>>> ftp.quit()
qq120848369 2012-08-31
  • 打赏
  • 举报
回复
http://jp2.php.net/manual/zh/function.ftp-rawlist.php

看修改时间即可.
zengna_com 2012-08-31
  • 打赏
  • 举报
回复
对比MD5值就行了
bugs2k 2012-08-28
  • 打赏
  • 举报
回复
ftp 服务器后台进程监控文件修改、并在修改时计算MD5/SHA1的hash值并保存到文件filename.md5或者filename.sha1
客户端获取文件hash,与本地文件计算的hash进行对比,然后判断是否需要下载文件
xiyoulaoyuanjia 2012-08-28
  • 打赏
  • 举报
回复
服务器可以管理ftp文件,并保存相应的hash,下载的文件的hash值如何保存呢?
Gloveing 2012-08-28
  • 打赏
  • 举报
回复
如果:FTP服务器上的文件A也是你在管理
那么可以为每个文件生成一个hash值,比如MD5值(或者在文件建立一个最后修改时间戳)
与你本地文件进行对比
tunaG 2012-08-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
ftp 服务器后台进程监控文件修改、并在修改时计算MD5/SHA1的hash值并保存到文件filename.md5或者filename.sha1
客户端获取文件hash,与本地文件计算的hash进行对比,然后判断是否需要下载文件
[/Quote]
好复杂的做法啊!
FileZilla FTP 详细说明 用FileZilla Server开FTP:看图入门 (2006-09-25 12:40:11)转载▼ 分类: 网络相关 重要更新:2007年12月,为本文改录了更直观的flash视频,请见本文最末段。 0. 关于续传和乱码的说明   问:听说FileZilla不能续传?答:那是以前,现在的新版可以了。   问:听说FileZilla处理中文文件有乱码。答:是有此现象,但这不是bug,原因见下,解决办法有3。一是,如果你尊重标准,可以同时使用FileZilla的server和client。二是,与现实妥协,用filezilla server的非utf-8版本,如V0.9.14,点击此处下载。三是,与现实妥协,用Tommy大侠提供的补丁http://sourceforge.net/project/showfiles.php?group_id=171626&package_id=196135&release_id=429471   原因:作者自FileZilla Server V0.9.15开始(及相应的client版本),按RFC 2610 http://www.faqs.org/rfcs/rfc2640.html 规定的方式,默认使用UTF-8。而其他服务器和客户端并不用此标准。即,server和client对话时,Filezilla产品一上来就用UTF-8,除非对方大喊一声UTF8 OFF;而其他的ftp产品则多数先用本地编码对话,除非对方说一声UTF8 ON。所以,Filezilla和其他软件对话时,就出现了一个讲UTF8,一个用本地编码,而大家都未沟通UTF8到底是on还是off,所以:乱码!   参见:http://blog.sina.com.cn/u/46dac66f010005lz 1. 为什么开FTP?   由于FTP是专门的文件传输协议,所以用它来上传下载文件最可靠,并且权限、速度也可以灵活设置。   我开FTP主要是偶尔与别人共享文件,或远程处理另一台计算机上的文件。   

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧