通过 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 协议
python libtorrent 在使用磁力 URI 时我应该等待元数据多长时间?