当前位置: 首页 > news >正文

Java使用Aria2c进行文件下载

在Java服务中有复杂网络环境下下载大文件的需求,一开始自己写了一个多线程下载,但遇到校园网下载1G以上大文件时直接卡死了。
经调研后决定用aria下载器,成熟稳定,避免自己去处理各种网络问题。下面记录一下windows和ubuntu系统上分别使用aria进行文件下载的步骤。

标题aria下载安装,打开jsonrpc

# ubuntu系统
sudo apt install -y aria2
aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c -D# windows系统
# 1. 下载aria2-1.36.0-win-64bit-build1.zip,https://github.com/aria2/aria2/releases
# 2. 解压文件
# 3. 执行命令:
aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c -D

保持aria在线的办法

写了一个监控脚本如下,放入crontab定时任务

log "aria heartbeat start"
result=$(curl -X GET --header 'Accept: application/json' 'http://localhost:6800/jsonrpc' | jq '.jsonrpc')
if [ "$result" == "" ]
thenlog "aria heartbeat failed"aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c -D
fi

Java 代码调用 jsonrpc

文件下载中遇到的一些需要注意的地方

  1. ubuntu 系统上 aria 会在未完成下载时就创建文件。

具体场景:例如指定url下载到一个1G的文件到 /home/user/test.zip。在任务创建后,/home/user/test.zip 就会被创建,且文件大小=1G。md5sum /home/user/test.zip 不等于正确值,且随着下载一直在变化。在某些情况下,这会造成干扰,让人或系统误以为文件已经下载完成,开始后续的操作,出现错误。

我的解决方案:给aria的指令改成创建 /home/user/test.zip.temp 甚至 /home/user/test.zip.uuid,完成后再把 /home/user/test.zip.temp 或 /home/user/test.zip.uuid 移动到 /home/user/test.zip

  1. 给 aria 发送多次相同的 url 和 filename的下载指令,
  2. 重复下载
http://www.lryc.cn/news/14718.html

相关文章:

  • Dart 表达式以及语法糖汇总
  • 支付宝支付功能使用
  • 数据库必知必会:TiDB(11)TiDB集群安装
  • ubuntu18安装Autoware 标定工具箱
  • 【面试题】ES6 如何将 Set 转化为数组
  • vs2022 实现无线调试安卓(Windows)
  • 手把手教你做插件(2)模块大串联
  • LU Accepted or Rejected过程介绍
  • Teradata退了? 无所谓,GBASE会出手
  • 华为OD机试 - 病菌感染(Python) | 机试题+算法思路+考点+代码解析 【2023】
  • 前置知识-边值问题、打靶法、bvp 系列函数的用法
  • 为什么越来越多的企业选择智能客服系统?
  • 打造一款日志分析工具
  • 网络编程基础知识
  • 2023北京老博会(CBIAIE全国老年产业必参盛会)
  • 【字典转模型 Objective-C语言】
  • 【LeetCode】剑指 Offer(6)
  • 论文投稿指南——中文核心期刊推荐(法律)
  • Qt音视频开发15-动态切换解码内核的设计
  • concurrent-map 和 sync.Map,我该选择哪个?
  • 华为OD机试 - 最少数量线段覆盖| 机试题算法思路 【2023】
  • 【蓝桥集训】第五天——递推
  • qnx的网络知识记录
  • 【Vue/基础知识】Vue基础知识(一)
  • Iceberg实战踩坑指南
  • 预告|2月25日 第四届OpenI/O 启智开发者大会昇腾人工智能应用专场邀您共启数字未来!
  • UnRaid虚拟机安装OpenWrt软路由
  • 开发日记-lombok
  • Web3中文|2023年zk赛道爆发,即将推出的Polygon zkEVM有多重要?
  • 【自然语言处理】主题建模:Top2Vec(理论篇)