如何使用 ttorrent 创建 torrent 文件?

Posted

技术标签:

【中文标题】如何使用 ttorrent 创建 torrent 文件?【英文标题】:How to use ttorrent to create a torrent file? 【发布时间】:2015-02-09 19:01:27 【问题描述】:

我开始使用 ttorrent (Turn's BitTorrent Java library) 创建本地网络同步文件夹。

我的目标是使用 torrent 协议来同步节点硬盘中的大文件。 但我看不到如何使用 ttorrent 创建新的 torrent 文件。

我需要: 1) 一个新文件被添加到一个节点。 2) 其他节点接收到 torent 文件并开始从第一个节点下载该文件或从已经下载该文件部分的其他节点下载该文件,从而加快下载时间。这样我可以避免每个节点从服务器下载千兆字节(并等待一整天)。

如果不知道如何为新添加的文件创建一个 torrent 文件(或者是否存在更好和更智能的方法),我将无法继续。

我可以有一个中心点作为跟踪器。

谢谢。

【问题讨论】:

我建议使用单个文件种子,否则如果您想停止共享一个文件,则需要重新散列所有文件。或者使用 BitComet 的填充文件 hack,它在公开可用的种子中不是很流行,但应该适合你。 【参考方案1】:

感谢fujohnwang

public class Main 

    public static void main(String[] args) 
        // File parent = new File("d:/echo-insurance.backup");
        String sharedFile = "d:/echo-insurance.backup";

        try 
            Tracker tracker = new Tracker( InetAddress.getLocalHost() );
            tracker.start();
            System.out.println("Tracker running.");

            System.out.println( "create new .torrent metainfo file..." );
            Torrent torrent = Torrent.create(new File(sharedFile), tracker.getAnnounceUrl().toURI(), "createdByDarren");

            System.out.println("save .torrent to file...");

            FileOutputStream fos = new FileOutputStream("d:/seed.torrent");
            torrent.save( fos );            
            fos.close();

         catch ( Exception e ) 
            e.printStackTrace();
        

    


【讨论】:

以上是关于如何使用 ttorrent 创建 torrent 文件?的主要内容,如果未能解决你的问题,请参考以下文章

使用 qBittorrent 运行脚本时如何克服 Python 中的 IO 错误 13

如何使用 java 从磁铁链接创建 torrent 文件?

如何检查 .torrent 文件?

使用 monotorrent 创建 torrent

查找文件的当前大小与文件 java 标题中的数量

使用 monotorrent c# 创建 torrent