Skip to content

CodeLunatic/jaria2c-rpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

jaria2c-rpc

Java版本的aria2c-rpcaria2cC++开发的一个高性能下载器,可以让Java通过json-rpc来调用aria2c下载器中的方法

当前进度

  • 实现官方所有的json-rpc方法

  • 官方RPC文档翻译完善

使用了jsonrpc4jlombok做支持,代码极其简单

使用方法

当然下面的例子是一个比较复杂且完整的例子,如果你只需要简单的下载一个文件,完全不需要这么复杂。

/**
 * 一个下载的例子,QQ
 */
public static void main(String[] args) {
    
    // 实例化Aria2c
    Aria2c aria2c = Aria2c.run();
    
    // --rpc-secret参数规定的token
    String token = Secret.token("这里填写token");

    // 添加下载连接
    String[] uris = {"https://qd.myapp.com/myapp/qqteam/pcqq/PCQQ2020.exe"};

    // 构造下载选项
    Options of = Options.of(Aria2cOptions.builder()
            .dir("下载目录")
            .out("文件名.exe")
            .build());

    // 添加到下载
    String gid = aria2c.addUri(token, uris, of, Integer.MAX_VALUE);

    // 监控下载情况
    ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
    
    scheduledExecutorService.scheduleAtFixedRate(() -> {
        Aria2cStatus downloadStatus = aria2c.tellStatus(token, gid, new String[]{});
        log.debug("当前的下载速度:{},响应的全部数据:{}", downloadStatus.getDownloadSpeed(), downloadStatus);
    }, 0, 1, TimeUnit.SECONDS);
}

需要进行官方文档翻译和代码整改工作...

该仓库代码是直接中Anything-Download仓库中抽取出来的,所以有些代码看起来非常的怪异,如果再用到Aria2c会好好修改一下代码。

About

Java版本RPC调用Aria2c

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages