librsync的python cTypes包装器。
python-librsync的Python项目详细描述
一个SmartFile开源项目。Read more关于smartfile如何 使用和贡献开源软件。
简介
librsync的cTypes包装器。提供signature()、delta()和 patch()函数。
同步文件需要三个步骤。执行两个步骤 在源文件上,在目标文件上。
- 为目标文件生成签名。
- 为源文件生成增量(使用签名)。
- 使用生成的增量修补目标文件。
通常,这些步骤涉及远程系统。下面是一个同步的例子 两个本地文件。
importlibrsync# The destination file.dst=file('Resume-v1.0.pdf','rb')# The source file.src=file('Resume-v1.2.pdf','rb')# Where we will write the synchronized copy.synced=file('Resume-latest.pdf','wb')# Step 1: prepare signature of the destination filesignature=librsync.signature(dst)# Step 2: prepare a delta of the source filedelta=librsync.delta(src,signature)# Step 3: synchronize the files.# In many cases, you would overwrite the destination with the result of# synchronization. However, by default a new file is created.librsync.patch(dst,delta,synced)
延伸
这个包装器只公开librsync提供的最常见的操作。它 不是一个完整的包装器,但是应该覆盖大多数用例。你可以 很容易扩展这个包装。关于librsync的信息可以从 下面链接的手册(我希望在写这篇文章之前就找到了 包装袋!)