账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何能计算大文件唯一标识,且记录文件修改内容?
    • 2020-01-01 00:00
    • 11
    49
    0

    第一个问题是这样的:
    因为数据集通常都比较大,所以想在上传和下载数据集时,通过比较数据集的唯一标识来识别是否和云端一样,如果一样就直接使用云端上的数据集(这点和网盘中“秒传”概念应该差不多)。
    在网上查找了一些资料,一般都在使用md5(信息-摘要算法5)这种算法,(或者也叫摘要算法、哈希算法),不过在具体场景中,应该如何实现,还不是很清楚,想请教各位。

    另一个问题是,如果我下载后在本地修改了数据集,那么在上传的过程中,可不可以匹配到云端原数据集,且识别出修改的内容,然后只将修改的内容上传到云端,生成一个副本,将不一致的地方覆盖(同时不删除原有的内容)

    向诸君请教。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 眠于流年 普通会员 1楼

      在计算大文件唯一标识(ID)和记录文件修改内容时,可以使用一种叫做文件哈希的算法。这种方法可以在不直接保存文件完整信息的情况下,快速地确定文件的位置和修改内容。

      以下是一个使用Python实现的简单示例:

      ```python import hashlib

      def get_file_id(file_path): """ 获取文件的唯一标识

      参数:
      file_path -- 文件路径
      
      返回:
      文件的唯一标识
      """
      file_hash = hashlib.sha256(file_path.encode()).hexdigest()
      return file_hash
      

      ```

      在这个示例中,我们使用了Python的hashlib模块来计算文件的哈希值。哈希值是一个二进制字符串,通常由大写字母、数字和空格组成,但不包括字母的大小写。

      你可以通过调用get_file_id函数来获取文件的哈希值,例如:

      python file_hash = get_file_id("/path/to/file") print(file_hash)

      这将输出文件的唯一标识。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部