Comparing local file with remote file

二次信任 提交于 2019-12-08 03:35:31

Short answer: You can't.

Long answer: To compare with the zip file on the server, someone has to read that file. Either you can do that locally, which would involve pulling it, or you can ask the server to do it for you. Can you run code on the server?

Edit

If you can run Python on the server, why not hash the file and compare hashes?

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( ) )

and then compare the contents of hashfile with a locally-generated hash?

Another edit

You asked for a simpler way. Think about this in an abstract way for a moment:

  • You don't want to download the entire zip file.
  • Hence, you can't process the entire file locally (because that would involve reading all of it from the server, which is equivalent to downloading it!).
  • Hence, you need to do some processing on the server. Specifically, you want to come up with some small amount of data that 'encodes' the file, so that you can fetch this small amount of data without fetching the whole file.
  • But this is a hash!

Therefore, you need to do some sort of hashing. Given that, I think the above is pretty simple.

I would like to know how you intend to compare them locally, if it were the case. You can apply the same logic to compare them remotely.

You can log in using ssh and make a md5 hash for the file remotely and a md5 hash for the current local file. If the md5s are matching the files are identicaly, else they are different.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!