首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过网络种子选择性下载torrents

通过网络种子选择性下载torrents
EN

Stack Overflow用户
提问于 2013-01-15 08:56:50
回答 1查看 318关注 0票数 0

我提供来自Jetty GET服务器的文件,这些文件目前是通过常规HTTP get下载的。

然而,我对P2P模型感兴趣,在这种模型中,用户可以通过网络种子下载文件。这将如何在带有libtorrent的Jetty服务器的上下文中实现?

其次,我不想永远“播种”Jetty the服务器上的所有文件,相反,我只想“按需”播种文件。例如,与其盲目地播种种子,我希望如果有请求(通过GET或webseeding或其他任何方式),我希望文件可以按需提供-它可以在上面“播种”。

我想按需设定种子或上传,因为我有大量文件,但不知道是否能够同时设定数万个文件的种子。顺便说一下,有没有人知道并发播种的文件数量的上限是多少?

EN

回答 1

Stack Overflow用户

发布于 2013-01-15 18:06:31

关于libtorrent部分的相关文档在这里:http://www.rasterbar.com/products/libtorrent/manual.html#http-seeding,规范是http://bittorrent.org/beps/bep_0019.htmlhttp://bittorrent.org/beps/bep_0017.html (都是由libtorrent支持的,作为"url seeds“和"http seeds")。

IIRC、BEP19 (webseeds或urlseeds)从服务器POV非常简单,你不需要做任何特殊的事情-你只需要像处理对该文件的普通HTTP请求那样提供文件(所以,你问题的第二部分在这里没有太大的意义)。

对于BEP17,您更愿意使用唯一的http端点,并将get参数传递给它,以指定客户端想要的内容(例如,这允许更好的节流控制和范围选择)(例如:http://example.com/seed/?info_hash=X&piece=Y&ranges=Z)。

如果你想对下载的内容有更多的(编程的)控制,那么第二种方法更灵活,但显然需要编写更多的代码来处理请求。

同样,从服务器POV来看,这与常规HTTP事务没有太大不同,这里的“种子”也没有什么特别之处。您只需提供文件(每个文件都有自己的url,或者直接提供,或者通过处理程序提供)。

对于元数据部分,对于BEP19,您可以添加一个" url -list“扩展名(带有文件的完整url:http://example.com/seeds/SOMEFILE.txt -当心多文件torrents),而BEP17使用关键字"httpseeds”(对于您的端点,例如:http://example.com/seed/)。

根据您的Jetty是否也处理元数据生成,您可能更喜欢BEP19而不是BEP17,以便您的urls更可预测/元数据生成更简单……

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14329517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档