吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 11887|回复: 13

[Windows] 下载工具aria2 1.31.0 解除单服务器线程数限制64位编译版

  [复制链接]
os51 发表于 2017-4-24 22:44
本帖最后由 os51 于 2017-5-6 01:06 编辑

https://ci.appveyor.com/api/projects/myfreeer/a780c730b7282e090f238e8286f815f3/artifacts/aria2c.7z
20170501更新:改为appveyor编译,文件更小,可能会不定时更新,故不在提供hash值。

注意:aria2对多核处理器的支持还不够完善,若总线程数超过1000可能会使下载速度不稳定,甚至卡0B/s,具体临界值取决于cpu单核心性能,相关issue: https://github.com/aria2/aria2/issues/869

本编译版仅支持64位

修改:
  • 解除单服务器线程数限制(默认单服务器16线程,所有服务器64线程)
  • 当目标文件存在时,默认续传
  • 不检查https证书
  • 最小分块大小改为1K(默认1M)


注:官方将单服务器线程数限制在16一定有自己的考虑,所以本编译版仅适用于“特殊”用途。普通用户可直接下载官方版-> https://github.com/aria2/aria2/releases/latest

aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
aria2是一个多线程、跨平台、开源的命令行下载工具,支持HTTP/HTTPS、FTP、SFTP、BT、Metalink
  1. aria2 version 1.31.0
  2. Copyright (C) 2006, 2016 Tatsuhiro Tsujikawa

  3. This program is free software; you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation; either version 2 of the License, or
  6. (at your option) any later version.

  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10. GNU General Public License for more details.

  11. ** Configuration **
  12. Enabled Features: Async DNS, BitTorrent, Firefox3 Cookie, GZip, HTTPS, Message D
  13. igest, Metalink, XML-RPC, SFTP
  14. Hash Algorithms: sha-1, sha-224, sha-256, sha-384, sha-512, md5, adler32
  15. Libraries: zlib/1.2.11 expat/2.2.0 sqlite3/3.16.2 GMP/6.1.2 c-ares/1.12.0 libssh
  16. 2/1.8.0
  17. Compiler: mingw-w64 5.0 (alpha) / gcc 6.3.0
  18.   built by   x86_64-w64-mingw32
  19.   on         May  1 2017 06:38:25
  20. System: Windows 6.3 Server (x86_64) (6.3)

  21. Report bugs to https://github.com/aria2/aria2/issues
  22. Visit https://aria2.github.io/
复制代码


根据GNU General Public License,公开对代码的修改部分。
  1. diff --git a/src/OptionHandlerFactory.cc b/src/OptionHandlerFactory.cc
  2. index b8f07770..0aaeda83 100644
  3. --- a/src/OptionHandlerFactory.cc
  4. +++ b/src/OptionHandlerFactory.cc
  5. @@ -158,7 +158,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
  6.    }
  7.    {
  8.      OptionHandler* op(new BooleanOptionHandler(
  9. -        PREF_CONTINUE, TEXT_CONTINUE, A2_V_FALSE, OptionHandler::OPT_ARG, 'c'));
  10. +        PREF_CONTINUE, TEXT_CONTINUE, A2_V_TRUE, OptionHandler::OPT_ARG, 'c'));
  11.      op->addTag(TAG_BASIC);
  12.      op->addTag(TAG_FTP);
  13.      op->addTag(TAG_HTTP);
  14. @@ -432,7 +432,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
  15.    {
  16.      OptionHandler* op(new NumberOptionHandler(PREF_MAX_CONCURRENT_DOWNLOADS,
  17.                                                TEXT_MAX_CONCURRENT_DOWNLOADS,
  18. -                                              "5", 1, -1, 'j'));
  19. +                                              "128", 1, -1, 'j'));
  20.      op->addTag(TAG_BASIC);
  21.      op->setChangeGlobalOption(true);
  22.      handlers.push_back(op);
  23. @@ -440,7 +440,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
  24.    {
  25.      OptionHandler* op(new NumberOptionHandler(PREF_MAX_CONNECTION_PER_SERVER,
  26.                                                TEXT_MAX_CONNECTION_PER_SERVER,
  27. -                                              "1", 1, 16, 'x'));
  28. +                                              "16", 1, -1, 'x'));
  29.      op->addTag(TAG_BASIC);
  30.      op->addTag(TAG_FTP);
  31.      op->addTag(TAG_HTTP);
  32. @@ -501,7 +501,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
  33.    }
  34.    {
  35.      OptionHandler* op(new UnitNumberOptionHandler(
  36. -        PREF_MIN_SPLIT_SIZE, TEXT_MIN_SPLIT_SIZE, "20M", 1_m, 1_g, 'k'));
  37. +        PREF_MIN_SPLIT_SIZE, TEXT_MIN_SPLIT_SIZE, "1M", 1_k, 1_g, 'k'));
  38.      op->addTag(TAG_BASIC);
  39.      op->addTag(TAG_FTP);
  40.      op->addTag(TAG_HTTP);
  41. @@ -834,7 +834,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
  42.    }
  43.    {
  44.      OptionHandler* op(new NumberOptionHandler(
  45. -        PREF_CONNECT_TIMEOUT, TEXT_CONNECT_TIMEOUT, "60", 1, 600));
  46. +        PREF_CONNECT_TIMEOUT, TEXT_CONNECT_TIMEOUT, "30", 1, 600));
  47.      op->addTag(TAG_FTP);
  48.      op->addTag(TAG_HTTP);
  49.      op->setInitialOption(true);
  50. @@ -905,7 +905,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
  51.    }
  52.    {
  53.      OptionHandler* op(new UnitNumberOptionHandler(
  54. -        PREF_PIECE_LENGTH, TEXT_PIECE_LENGTH, "1M", 1_m, 1_g));
  55. +        PREF_PIECE_LENGTH, TEXT_PIECE_LENGTH, "1M", 1_k, 1_g));
  56.      op->addTag(TAG_ADVANCED);
  57.      op->addTag(TAG_FTP);
  58.      op->addTag(TAG_HTTP);
  59. @@ -926,7 +926,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
  60.    }
  61.    {
  62.      OptionHandler* op(
  63. -        new NumberOptionHandler(PREF_RETRY_WAIT, TEXT_RETRY_WAIT, "0", 0, 600));
  64. +        new NumberOptionHandler(PREF_RETRY_WAIT, TEXT_RETRY_WAIT, "2", 0, 600));
  65.      op->addTag(TAG_FTP);
  66.      op->addTag(TAG_HTTP);
  67.      op->setInitialOption(true);
  68. @@ -971,7 +971,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
  69.    }
  70.    {
  71.      OptionHandler* op(
  72. -        new NumberOptionHandler(PREF_SPLIT, TEXT_SPLIT, "5", 1, -1, 's'));
  73. +        new NumberOptionHandler(PREF_SPLIT, TEXT_SPLIT, "128", 1, -1, 's'));
  74.      op->addTag(TAG_BASIC);
  75.      op->addTag(TAG_FTP);
  76.      op->addTag(TAG_HTTP);
  77. @@ -1049,7 +1049,7 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers()
  78.    {
  79.      OptionHandler* op(
  80.          new BooleanOptionHandler(PREF_CHECK_CERTIFICATE, TEXT_CHECK_CERTIFICATE,
  81. -                                 A2_V_TRUE, OptionHandler::OPT_ARG));
  82. +                                 A2_V_FALSE, OptionHandler::OPT_ARG));
  83.      op->addTag(TAG_HTTP);
  84.      op->addTag(TAG_HTTPS);
  85.      handlers.push_back(op);
复制代码


编译脚本:https://gist.github.com/myfreeer/a780c730b7282e090f238e8286f815f3

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Cires + 1 + 1 下载神器

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

荒草2378 发表于 2017-4-25 08:42
期待32位版
 楼主| os51 发表于 2017-5-9 17:00
yissai 发表于 2017-4-24 23:01
manbajie 发表于 2017-4-24 23:19
下载工具好多哦
zyhsq 发表于 2017-4-24 23:46
谢谢了楼主
TielingBoi 发表于 2017-4-25 00:02
老铁 稳!!~~
Recobaggio 发表于 2017-4-25 00:31
aria2还是挺好用的,配置好了不比idm慢
sp21000 发表于 2017-4-25 07:06 来自手机
谢谢楼主
心雨飞飞 发表于 2017-4-25 07:58
我用这个东西一段时间,不知道为啥,下载的文件总是损坏。
非寒 发表于 2017-4-25 07:59
来向大师学习了
快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2020-7-7 15:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表