aria2的控制文件*.aria2的技术说明

2024-03-27 13:48
文章标签 技术 说明 控制 aria2

本文主要是介绍aria2的控制文件*.aria2的技术说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Technical Notes

This document describes additional technical information of aria2. The expected audience is developers.

本文档描述了aria2的其他技术信息。预期的受众是开发人员。

Control File (*.aria2) Format

The control file uses a binary format to store progress information of a download. Here is the diagram for each field:

控制文件使用二进制格式来存储下载的进度信息。下面是每个字段的图:

 0                   1                   2                   30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---+-------+-------+-------------------------------------------+
|VER|  EXT  |INFO   |INFO HASH ...                              |
|(2)|  (4)  |HASH   | (INFO HASH LENGTH)                        |
|   |       |LENGTH |                                           |
|   |       |  (4)  |                                           |
+---+---+---+-------+---+---------------+-------+---------------+
|PIECE  |TOTAL LENGTH   |UPLOAD LENGTH  |BIT-   |BITFIELD ...   |
|LENGTH |     (8)       |     (8)       |FIELD  | (BITFIELD     |
|  (4)  |               |               |LENGTH |  LENGTH)      |
|       |               |               |  (4)  |               |
+-------+-------+-------+-------+-------+-------+---------------+
|NUM    |INDEX  |LENGTH |PIECE  |PIECE BITFIELD ...             |
|IN-    |  (4)  |  (4)  |BIT-   | (PIECE BITFIELD LENGTH)       |
|FLIGHT |       |       |FIELD  |                               |
|PIECE  |       |       |LENGTH |                               |
|  (4)  |       |       |  (4)  |                               |
+-------+-------+-------+-------+-------------------------------+^                                                       ^|                                                       |+-------------------------------------------------------+Repeated in (NUM IN-FLIGHT) PIECE times
VER (VERSION): 2 bytes
Should be either version 0(0x0000) or version 1(0x0001). In version 1, all multi-byte integers are saved in network byte order(big endian). In version 0, all multi-byte integers are saved in host byte order. aria2 1.4.1 can read both versions and only writes a control file in version 1 format. version 0 support will be disappear in the future version.
应为版本0(0x0000)或版本1(0x0001)。 在版本1中,所有多字节整数以网络字节顺序(大字节序)保存。 在版本0中,所有多字节整数以主机字节顺序保存。 aria2 1.4.1可以读取这两个版本,并且只写入版本1格式的控制文件。 版本0支持将在以后的版本中消失。

EXT (EXTENSION): 4 bytes
If LSB is 1(i.e.  EXT[3]&1 == 1), aria2 checks whether the saved !InfoHash and current downloading one are the same. If they are not the same, an exception is thrown. This is called "infoHashCheck" extension.
如果LSB为1(即),aria2将检查保存的!InfoHash和当前下载的信息是否相同。如果它们不相同,则抛出异常。这被称为“infoHashCheck”扩展。 EXT[3]&1 == 1

INFO HASH LENGTH: 4 bytes
The length of InfoHash that is located after this field. If "infoHashCheck" extension is enabled, if this value is 0, then an exception is thrown. For http/ftp downloads, this value should be 0.
位于此字段后面的InfoHash的长度。 如果启用了“infoHashCheck”扩展,如果此值为0,则抛出异常。 对于http / ftp下载,此值应为0。

INFO HASH(INFO HASH LENGTH) bytes
BitTorrent InfoHash.
PIECE LENGTH: 4 bytes
The length of the piece.
TOTAL LENGTH: 8 bytes
The total length of the download.
UPLOAD LENGTH: 8 bytes
The uploaded length in this download.
BITFIELD LENGTH: 4 bytes
The length of bitfield.
BITFIELD(BITFIELD LENGTH) bytes
This is the bitfield which represents current download progress.
NUM IN-FLIGHT PIECE: 4 bytes
The number of in-flight pieces. These piece is not marked 'downloaded' in the bitfield, but it has at least one downloaded chunk.

The following 4 fields are repeated in (NUM IN-FLIGHT PIECE) times.

INDEX: 4 bytes
The index of the piece.
LENGTH: 4 bytes
The length of the piece.
PIECE BITFIELD LENGTH: 4 bytes
The length of bitfield of this piece.
PIECE BITFIELD(PIECE BITFIELD LENGTH) bytes
The bitfield of this piece. The each bit represents 16KiB chunk.

这篇关于aria2的控制文件*.aria2的技术说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852317

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩