通过 Libtorrent (Python) 将数据库用作 Custom_Storage

Posted

技术标签:

【中文标题】通过 Libtorrent (Python) 将数据库用作 Custom_Storage【英文标题】:Use database as Custom_Storage with Libtorrent (Python) 【发布时间】:2017-04-25 19:52:21 【问题描述】:

我正在使用 Rasterbar libtorrent,并希望将 mysql 数据库用作 custom_storage。我知道可以通过实现一个自己的存储类来实现 storage_inferface (http://libtorrent.org/reference-Custom_Storage.html)。 有人已经在 Python 中实现了这样的 custom_storage 了吗?

相关: Keeping the downloaded torrent in memory rather than file libtorrent

【问题讨论】:

我不相信你可以用python实现存储接口。 或者也许有一个带有 Python 绑定的 C 实现? 问题不是 libtorrent 是用 C++ 编写的,而是 storage_interface 没有 python 绑定 【参考方案1】:

基本上有两种解决方案:

    扩展 libtorrent 附带的 python 绑定,为storage_interface 提供绑定。这是一种与现有绑定不同的绑定,因为它需要一个 wrapper 类型,可以将 C++ 中的虚函数调用桥接到 python 子类中。 boost.python 支持此类包装器,请参阅tutorial。 SO answer 也涵盖了这一点。

    完成后,您可以在 python 中实现storage_interface

    在 C++ 中实现您的存储,并向 python 公开一个函数以使用它。如果您能够使用已修补的 libtorrent 并且您对 C++ 很熟悉,那么我希望这种方法是最可靠、最简单的。

【讨论】:

感谢您的回答。我(还)不能实现它。但我很乐意使用它。

以上是关于通过 Libtorrent (Python) 将数据库用作 Custom_Storage的主要内容,如果未能解决你的问题,请参考以下文章

我无法通过 libtorrent-python 接收磁链接元数据,而无需指定跟踪器的 udp 协议

Libtorrent,Python,如何设置下载速度

python libtorrent 在使用磁力 URI 时我应该等待元数据多长时间?

如何使用 python-libtorrent 下载特定文件

libtorrent-rasterbar 的 Python 绑定不起作用

libtorrent-rasterbar 的 python 绑定是不是适用于 Python 3?