一个好用的不基于时间的同步文件的软件 —— Allway sync 文件同步

文件同步是协作同步的基础。

对于多文件修改后的同步备份,如果不是同步到网盘,那种有网盘软件帮助,识别修改后文件,并备份。容易出现备份出错,人就容易麻,麻中麻。

基本需求

对于文件的同步需求,如下:

  1. 识别更新后的文件(很多同步工具都是基于系统时间,一错全错)
  2. 不基于系统时间识别文件修改情况
  3. 支持任意格式
  4. 可以选择删除不对等的文件
  5. 增量备份(高端)
  6. 多端同步(即支持各类文件传输协议)

Allway sync 文件同步软件

image-20211118104813815

有好多软件都有这个软件的影子。

也不知道谁是鸡谁是蛋。

软件下载地址:

链接:https://pan.baidu.com/s/1T28-nvumcEX3B1Wd1o-VvQ 
提取码:n4am 

小想法

下面就是我对这个软件两个小点的想法

第一个,不基于系统时间识别文件修改状态

第二个,增量备份

不基于系统时间识别文件修改状态

没有时间做参考系坐标原点,还是很容易乱套的。有一些软件的破解也是往系统时间上面做文章,这个点在正常写软件的时候也不好想到,奇奇怪怪的角度。

有一些权益的增加,必然会有一些舍弃。不用时间了,就需要用些空间。

基本思路是给文件打点,以文件名为索引,制定一张表。这张表包括这个文件的基本信息,每种文件格式都有一个特征头部,诶~。文件名,文件头部特征值,文件哈希值,巴拉巴拉巴拉

文件每有一次变更,就在表里面打个点。对比文件哈希值,一个文件有一点点变化,哈希值出现雪崩效应。对比哈希值是合理的,况且计算哈希值也花不了多少计算资源。

这里面还有一个基准点,文件用这个软件创建之后,形成两个对等的表。一个用来记时间(创建时间用秒表示),一个用来记变化。

简单点说就是,利用哈希值的雪崩效应,判定文件更新前后。

增量备份

增量就是只修改文件的一部分同时也只更新这一部分,达到备份的目的。

那可能要问了,打开文件修改,再保存,不就是增量修改么。格局小了格局小了,文件打开基于某个格式,各种格式的压缩方式又不一样。要是能寻求一种,底层的增量哈哈哈哈哪得省多少钱啊

这是个大课题,是个恰饭的点。奈何等级不够,只搞懂了一点点。

现在的增量备份是用CPU资源换带宽流量资源。也就是说这玩意儿就是算。

当一个文件很大的时候,我们可以把它分块,一个块一个块的储存。这时候,文件太过散乱了,需要一个程序或者说一个表(BT种子就是这么一回事),把这个块的名字存起来(还是哈希值)。

既然是要备份,也就是说我们修改一部分,后面还是要用的,文件不能损坏。

文件修改了一部分,整个去分块,对比之前的分块哈希,有变更的分块就是需要增量备份的块。

混合在一起 ~

数据这样分块存储,跟数据帧是一个意思,只是一个大一个小一点。

我这里有个疑问,数据的小变动会不会引起数据底层(0101010这块的)的大变动?

按我的想法,数据能表现成一个稀疏矩阵的时候,不会引起大的变动。(空间换信息这样的)

当然,我也知道压缩这个概念,字典中字段的数量决定了可压缩的极限。一个格式的能支持压缩率越高,它相对而言冗余的信息就越多。

压缩是个数学问题,留给数学家和编码学家。

研究了一段时间的PDF格式和国家自主研发电子文件格式OPD,下次写
– 文章完 –

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中,有几种方法可以列举文件列表。一种常见的方法是使用生成器表达式。下面是一个示例代码,使用生成器表达式来列举文件列表: ```python import os def get_files(path): for file in os.listdir(path): if os.path.isfile(os.path.join(path, file)): yield file # 调用get_files函数来获取文件列表 file_list = list(get_files('path_to_directory')) print(file_list) ``` 另一种方法是直接调用`os.listdir('path')`函数来获取目录的内容。下面是一个示例代码: ```python import os # 文件夹路径 dir_path = r'E:\\account\\' # 获取文件和目录 file_list = os.listdir(dir_path) print(file_list) ``` 如果你只想列举目录中的文件,可以使用以下示例代码: ```python import os # 文件夹路径 dir_path = r'E:\\account\\' # 存储文件的列表 file_list = [] # 遍历目录 for path in os.listdir(dir_path): # 检查当前路径是否是文件 if os.path.isfile(os.path.join(dir_path, path)): file_list.append(path) print(file_list) ``` 希望这些代码能够帮助你列举文件列表。123 #### 引用[.reference_title] - *1* *2* *3* [Python 列出目录中的文件](https://blog.csdn.net/allway2/article/details/124176562)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值