问题标签 [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.
python - 在 docker 容器上安装 rdiff
我正在尝试使用 rdiff 为 docker 容器制作备份解决方案。我有 python install 和 python-dev 包,但是当我运行 install 命令时:
我收到以下错误
python - 使用 ctypes 为 librsync 编写 python 包装器。我应该如何编译 librsync 以在所有系统上工作?
所以我正在用 python 编写一个应用程序,它需要 librsync 才能更有效地传输文件。我希望我的 librsync 包装器能够工作,以便如果系统上已经安装了 librsync,它将使用它,否则尝试使用我的应用程序附带的版本。包装器目前在已安装 librsync 的 Linux 上工作,我还设法将 librsync 编译为与 Windows 上的包装器一起工作的 DLL。当我在 linux 上将它编译为 .so 文件时,我可以将它移动到其他 linux 系统并且它会工作,但是当我尝试在 FreeBSD 上使用它时,我得到一个“无效的文件布局”错误。
我想知道,是否可以将 librsync 编译为可以跨平台工作的库文件?(或仅在所有 *NIX 系统上)此外,如果您认为有更好的方法可以做到这一点,请告诉我。
c - 如何链接 librsync(可能使用过 libtool)
刚刚在 ubuntu 上安装了 librsync apt-get install librsync-dev
。我可以像这样链接其他库,pkg-config --libs --cflags glib-2.0
但我找不到librsync
使用pkg-config
. 我怎样才能链接它?
更新:我对 C 和所有这些编译链接的东西都很陌生。刚刚学习了如何使用 pkg-config 查找和链接。但是这个 librsync 似乎是使用不同的东西开发的。
c - 分段错误 - 使用 librsync 库时
我有两个基本文件filea.txt
和fileb.txt
. 尝试创建签名,然后使用签名和进行增量fileb.txt
,然后使用该增量进行修补filea.txt
。结果文件的内容应与fileb.txt
第一部分从以下位置创建签名文件filea.txt
:
然后第二个应该使用带有fileb.txt
文件的签名来创建增量文件
我正在像这样编译它们 gcc -o delta create_delta.c -Wall -g -lrsync
但第二部分给出了 Segmentation fault 错误。
也许正因为如此,第三个可执行文件会产生空文件:
更新 尝试在 fopen 未捕获任何错误后检查文件指针是否为空。
python - 是否可以使用 boto 在 s3 键上写入?
我有一个使用 boto 构建的应用程序,它使用 librsync(包装在 python 模块中)在本地同步文件。我想知道是否可以在 S3 密钥上写入,以便我可以远程使用 librsync,例如,我将通过获取签名、增量和修补结果来将本地文件与 S3 中的文件同步。在 boto 文档中,它说 open_write 尚未实现。但我确实知道像 dropbox 这样的人也使用 s3 和 librsync,所以一定有办法......谢谢。
c++ - 如何使用 librsync 函数打开远程文件?
我正在使用 librsync 库来维护文件版本。我无法从网络打开文件。
示例(创建签名文件):
当我通过网络运行带有文件参数的程序时,例如
fpa 为空。
我猜 fopen 不是用来通过网络打开文件的。我需要一个可以做到这一点的命令。c/c++ 中的任何命令。你可以清楚地看到我想用这个程序做什么。
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
添加它作为答案。
c# - Stream.CopyTo 与 Librsync.PatchStream 一起使用时挂起
我在项目中使用Librsync来计算文件的两个版本之间的差异并将更改应用于旧文件。
在我的项目之外,我让它在一个简单的控制台应用程序中工作,该应用程序从 2 个不同的目录读取文件,“修补”它们并将其写入修补目录。
代码示例 -
algorithm - 在不可靠的网络中复制一组约 10000 个唯一标识的数据中的更改
Alice 和 Bob 有两组约 10000 条数据(每条小于 65536 字节,通常要小得多),每条都有一个 12 字节的 ID(时间戳 + CRC32)。他们都希望拥有这些集合的并集。他们的集合只是略有不同:也许 Alice 或 Bob 获得了 10 个新数据,因此他们最好确定要相互发送哪些数据,然后只发送它们。
Alice 和 Bob 已经建立了一个 TLS 连接(访问控制有点复杂,涉及客户端证书和自己的 CA)。他们如何进行复制?
到目前为止,他们一直是:
- 构建一个 ID 数组
- 用于
librsync
将其复制到另一方 - 拥有两个数组的另一方将确定适当的操作并发送/请求丢失的数据片段
如果连接中断,他们会考虑已经收到的任何数据片段并重新启动该过程,直到不需要发送任何更改。
有没有更好的方法来做到这一点?一个现有的协议,也许?
cygwin - Unicode 文件名作为命令提示符中的参数
我成功地使用 rdiff.exe 和 cygwin1.dll 从命令提示符创建签名。我的问题是 Unicode 文件不起作用?
rdiff -b 10240 签名“ฉันเจ็บ.txt”“ฉันเจ็บ.sig”
我正在使用Windows7。