#tool #这是一个使用 #编写的多线程下载工具,支持断点下载和重试功能。通过该工具,你可以高效地下载文件,充分利用多线程提升下载速度,同时在下载过程中支持断点续传,保证下载的稳定性和可靠性。

app dn

这是一个使用 Rust 编写的多线程下载工具,支持断点下载和重试功能。通过该工具,你可以高效地下载文件,充分利用多线程提升下载速度,同时在下载过程中支持断点续传,保证下载的稳定性和可靠性。

4 releases

0.1.3 Dec 27, 2023
0.1.2 Dec 22, 2023
0.1.1 Dec 21, 2023
0.1.0 Sep 5, 2023

#304 in Web programming

MIT license

220KB
490 lines

多线程下载器 (dn)

简介

这是一个使用 Rust 编写的多线程下载工具,支持断点下载和重试功能。通过该工具,你可以高效地下载文件,充分利用多线程提升下载速度,同时在下载过程中支持断点续传,保证下载的稳定性和可靠性。

特性

  • 多线程下载: 利用多线程技术,加速文件下载过程。
  • 断点下载: 支持下载过程中的断点续传,避免因网络问题导致的下载失败。
  • 自定义线程数: 可以通过命令行参数自定义线程数量,根据网络情况选择合适的线程数以提高下载效率。
  • 重试机制: 在下载失败的情况下,支持设定重试次数,提高下载成功的概率。
  • 简单易用: 使用简单的命令行参数,轻松启动下载任务。

安装

首先,确保你已经安装了 Rust 环境。然后通过以下步骤安装下载器:

cargo install dn

用法

dn [OPTIONS] <URL>

参数说明

  • <URL>: 要下载文件的 URL。
  • -o, --output <OUTPUT>: 指定输出文件路径。
  • -H, --header <HEADER>: header 路径,自动检测并导入当前路径下的 header, header.dn, header.txt 文件
  • -A, --user-agent <USER_AGENT>: 自定义 User-Agent,优先级大于 header
  • -t, --thread-count <THREAD_COUNT>: 指定线程数量,默认为 8。
  • -r, --retry <RETRY>: 指定下载失败时的重试次数,默认为 3。
  • -h, --help: 显示帮助信息。
  • -V, --version: 显示版本信息。

示例

header.dn

Accept: text/html,application/xhtml+xml
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0
Cookie: cookie
Referer: https://cn.bing.com/search?q=rust
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

运行

dn https://example.com/file.zip -o output_file.zip -t 12 -r 5

这个命令将自动导入 header.dn 并以 12 个线程下载 https://example.com/file.zip 文件,输出文件保存为 output_file.zip,并在下载失败时进行最多 5 次重试。

更新说明

  • 0.1.3 新增自定义请求头

贡献

欢迎贡献代码、报告问题或提出建议!请在 GitHub 仓库中提出问题或提交 Pull Request。

许可证

本项目采用 MIT 许可证

© 2023 Kshine.

Dependencies

~9–23MB
~344K SLoC