比较本地文件和远程文件
问题内容:
我有以下问题:我有一个本地.zip
文件和一个.zip
位于服务器上的文件。我需要检查.zip
服务器上的文件是否不同于本地文件;如果不是,我需要从服务器中拉出新的。我的问题是如何比较它们而不从服务器下载文件并在本地比较它们?
创建文件时,我可以在服务器上为zip文件创建MD5哈希.zip
,然后将其与本地.zip
文件的MD5进行比较,但是有没有更简单的方法?
问题答案:
简短的回答:不能。
长答案:要与服务器上的zip文件进行比较,必须有人读取该文件。您可以在本地执行此操作(这涉及将其拉出),也可以要求服务器为您执行此操作。您可以在服务器上运行代码吗?
编辑
如果可以在服务器上运行Python,为什么不对文件进行哈希处理并比较哈希?
import hashlib
with open( <path-to-file>, "rb" ) as theFile:
m = hashlib.md5( )
for line in theFile:
m.update( line )
with open( <path-to-hashfile>, "wb" ) as theFile:
theFile.write( m.digest( ) )
然后将的内容hashfile
与本地生成的哈希进行比较?
另一个编辑
您要求一种更简单的方法。暂时以抽象的方式考虑一下:
- 您不想下载整个zip文件。
- 因此,您无法在本地处理整个文件(因为这将涉及从服务器读取所有文件,这相当于下载它!)。
- 因此,您需要在服务器上进行一些处理。具体来说,您想提供一些少量的数据来对文件进行“编码”,以便无需获取整个文件就可以获取少量的数据。
- 但这是一个哈希!
因此,您需要进行某种哈希处理。鉴于此,我认为上述内容非常简单。