问题标签 [librsync]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1171 浏览

python - 在 docker 容器上安装 rdiff

我正在尝试使用 rdiff 为 docker 容器制作备份解决方案。我有 python install 和 python-dev 包,但是当我运行 install 命令时:

我收到以下错误

0 投票
1 回答
363 浏览

python - 使用 ctypes 为 librsync 编写 python 包装器。我应该如何编译 librsync 以在所有系统上工作?

所以我正在用 python 编写一个应用程序,它需要 librsync 才能更有效地传输文件。我希望我的 librsync 包装器能够工作,以便如果系统上已经安装了 librsync,它将使用它,否则尝试使用我的应用程序附带的版本。包装器目前在已安装 librsync 的 Linux 上工作,我还设法将 librsync 编译为与 Windows 上的包装器一起工作的 DLL。当我在 linux 上将它编译为 .so 文件时,我可以将它移动到其他 linux 系统并且它会工作,但是当我尝试在 FreeBSD 上使用它时,我得到一个“无效的文件布局”错误。

我想知道,是否可以将 librsync 编译为可以跨平台工作的库文件?(或仅在所有 *NIX 系统上)此外,如果您认为有更好的方法可以做到这一点,请告诉我。

0 投票
1 回答
172 浏览

c - 如何链接 librsync(可能使用过 libtool)

刚刚在 ubuntu 上安装了 librsync apt-get install librsync-dev。我可以像这样链接其他库,pkg-config --libs --cflags glib-2.0但我找不到librsync使用pkg-config. 我怎样才能链接它?

更新:我对 C 和所有这些编译链接的东西都很陌生。刚刚学习了如何使用 pkg-config 查找和链接。但是这个 librsync 似乎是使用不同的东西开发的。

0 投票
1 回答
447 浏览

c - 分段错误 - 使用 librsync 库时

我有两个基本文件filea.txtfileb.txt. 尝试创建签名,然后使用签名和进行增量fileb.txt,然后使用该增量进行修补filea.txt。结果文件的内容应与fileb.txt

第一部分从以下位置创建签名文件filea.txt

然后第二个应该使用带有fileb.txt文件的签名来创建增量文件

我正在像这样编译它们 gcc -o delta create_delta.c -Wall -g -lrsync

但第二部分给出了 Segmentation fault 错误。

也许正因为如此,第三个可执行文件会产生空文件:

更新 尝试在 fopen 未捕获任何错误后检查文件指针是否为空。

0 投票
1 回答
206 浏览

python - 是否可以使用 boto 在 s3 键上写入?

我有一个使用 boto 构建的应用程序,它使用 librsync(包装在 python 模块中)在本地同步文件。我想知道是否可以在 S3 密钥上写入,以便我可以远程使用 librsync,例如,我将通过获取签名、增量和修补结果来将本地文件与 S3 中的文件同步。在 boto 文档中,它说 open_write 尚未实现。但我确实知道像 dropbox 这样的人也使用 s3 和 librsync,所以一定有办法......谢谢。

0 投票
2 回答
2006 浏览

c++ - 如何使用 librsync 函数打开远程文件?

我正在使用 librsync 库来维护文件版本。我无法从网络打开文件。

示例(创建签名文件):

当我通过网络运行带有文件参数的程序时,例如

fpa 为空。

我猜 fopen 不是用来通过网络打开文件的。我需要一个可以做到这一点的命令。c/c++ 中的任何命令。你可以清楚地看到我想用这个程序做什么。

0 投票
2 回答
1222 浏览

python-2.7 - 无法腌制 StringO 对象(在尝试序列化从 librsync-python 模块返回的签名时)

https://pypi.python.org/pypi/python-librsync/0.1-5

我想将签名存储在文件中(最好作为字典条目使用pickle)。之后我想计算delta文件。如何保存此签名对象以供将来使用?

更新:我试图腌制物体,但它说TypeError: can't pickle StringO objects.

更新 2:返回的签名对象引用了文件对象。Python 不能腌制文件对象。我使用模块dill的扩展版本解决了它。pickle添加它作为答案。

0 投票
1 回答
410 浏览

c# - Stream.CopyTo 与 Librsync.PatchStream 一起使用时挂起

我在项目中使用Librsync来计算文件的两个版本之间的差异并将更改应用于旧文件。

在我的项目之外,我让它在一个简单的控制台应用程序中工作,该应用程序从 2 个不同的目录读取文件,“修补”它们并将其写入修补目录。

代码示例 -

0 投票
1 回答
30 浏览

algorithm - 在不可靠的网络中复制一组约 10000 个唯一标识的数据中的更改

Alice 和 Bob 有两组约 10000 条数据(每条小于 65536 字节,通常要小得多),每条都有一个 12 字节的 ID(时间戳 + CRC32)。他们都希望拥有这些集合的并集。他们的集合只是略有不同:也许 Alice 或 Bob 获得了 10 个新数据,因此他们最好确定要相互发送哪些数据,然后只发送它们。

Alice 和 Bob 已经建立了一个 TLS 连接(访问控制有点复杂,涉及客户端证书和自己的 CA)。他们如何进行复制?

到目前为止,他们一直是:

  1. 构建一个 ID 数组
  2. 用于librsync将其复制到另一方
  3. 拥有两个数组的另一方将确定适当的操作并发送/请求丢失的数据片段

如果连接中断,他们会考虑已经收到的任何数据片段并重新启动该过程,直到不需要发送任何更改。

有没有更好的方法来做到这一点?一个现有的协议,也许?

0 投票
0 回答
85 浏览

cygwin - Unicode 文件名作为命令提示符中的参数

我成功地使用 rdiff.exe 和 cygwin1.dll 从命令提示符创建签名。我的问题是 Unicode 文件不起作用?

rdiff -b 10240 签名“ฉันเจ็บ.txt”“ฉันเจ็บ.sig”

我正在使用Windows7。