Aria2@RPC下载@Alist批量下载
文章目录
- abstract
- Aria2 RPC 概述
- RPC 的主要功能
- 在线文档
- aria2的配置文件与启动选项
- 使用配置文件设置aria2 rpc功能
- Aria2关于rpc的离线文档
- Aria2 RPC 重要和常用选项
- 1. `enable-rpc`
- 2. `rpc-listen-port`
- 3. `rpc-secret`
- 4. `rpc-listen-all`
- 5. `rpc-allow-origin-all`
- 6. `rpc-max-request-size`
- 7. `rpc-save-upload-metadata`
- 总结👺
- aria2 rpc 安全性配置选项
- aria2 --rpc-secret选项介绍
- 如何使用--rpc-secret
- 安全性建议
- 启用和配置 Aria2 RPC👺
- 配置文件设置
- 启动 Aria2
- 使用 Aria2 RPC
- aria2 rpc客户端:使用设置了rpc-secret的aria2
- 使用在线web UI👺
- 使用API直接连接
- 使用aria2客户端库
- Alist配置aria2 rpc实现批量下载或文件夹下载
- 命令行客户端(TODO)
- 添加下载任务
- 解释:
- 暂停下载任务
- 查询任务状态
abstract
Aria2 是一款轻量级、多协议、多源的命令行下载工具,其强大的功能使得它在开发者和高级用户中备受推崇。
本文探讨 Aria2 的远程控制功能——RPC(Remote Procedure Call),并演示如何使用它来远程管理下载任务。
Aria2 RPC 概述
RPC 的主要功能
- 添加、暂停、删除下载任务:可以通过 RPC 动态管理任务。
- 获取任务状态:可以实时查询任务的下载进度、速度和状态。
- 修改下载选项:支持在下载过程中修改下载参数,比如最大连接数、速度限制等。
- 事件通知:可以通过 RPC 接口获取下载完成或出错的通知。
在线文档
- Aria2 中文文档 — aria2 1.37.0 documentation
- rpc-interface|aria2c(1) — aria2 1.37.0 documentation
Aria2 提供了一个远程控制接口(RPC),可以通过 JSON-RPC 协议对 Aria2 进行操作。这意味着你可以通过网络,从远程服务器或本地脚本控制 Aria2 的下载任务。
aria2的配置文件与启动选项
-
默认情况下,aria2会检查
$home/.aria2/aria2.conf文件(aria2的配置文件)-
如果存在该文件,那么启动时会根据该文件内的配置项目启动或者设置相应的功能服务
-
如果找不到该文件,并且没有指定其他位置的存在的配置文件,那么aria2 会认为你只是想要使用最基本下载功能,如果你不提供下载链接(源),那么会提示你
PS> aria2c Specify at least one URL. Usage: aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]... See 'aria2c -h'. -
你可以使用
--conf-path选项来临时指定aria2的功能配置文件路径
-
-
--conf-path=<PATH>¶Change the configuration file path to PATH. Default:
$HOME/.aria2/aria2.confif present, otherwise$XDG_CONFIG_HOME/aria2/aria2.conf
使用配置文件设置aria2 rpc功能
- 虽然配置文件不是必须的,但是使用配置文件可以让aria2的服务调用更加优雅和方便
- 例如,我们可以在aria2的配置文件中设置是否启用rpc功能,以及是否使用密钥保护
Aria2关于rpc的离线文档
- 在命令行中执行
aria2c -h#rpc获取文档
PS C:\Users\cxxu\Desktop> aria2c -h#rpc
Usage: aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]...
Printing options tagged with '#rpc'.
See 'aria2c -h#help' to know all available tags.
Options:--enable-rpc[=true|false] Enable JSON-RPC/XML-RPC server.It is strongly recommended to set secretauthorization token using --rpc-secret option.See also --rpc-listen-port option.Possible Values: true, falseDefault: falseTags: #rpc--rpc-listen-port=PORT Specify a port number for JSON-RPC/XML-RPC serverto listen to.Possible Values: 1024-65535Default: 6800Tags: #rpc--rpc-max-request-size=SIZE Set max size of JSON-RPC/XML-RPC request. If aria2detects the request is more than SIZE bytes, itdrops connection.Possible Values: 0-*Default: 2MTags: #rpc--rpc-listen-all[=true|false] Listen incoming JSON-RPC/XML-RPC requests on allnetwork interfaces. If false is given, listen onlyon local loopback interface.Possible Values: true, falseDefault: falseTags: #rpc...--rpc-secret=TOKEN Set RPC secret authorization token.Tags: #rpc
...Refer to man page for more information.
Aria2 RPC 重要和常用选项
1. enable-rpc
- 作用: 启用或禁用 Aria2 的 RPC 功能。
- 默认值:
false - 配置:
enable-rpc=true - 说明: 这是启动 RPC 的关键选项。如果不启用 RPC,所有其他与 RPC 相关的配置都会被忽略。
2. rpc-listen-port
- 作用: 指定 RPC 服务监听的端口号。
- 默认值:
6800 - 配置:
rpc-listen-port=6800 - 说明: 指定 Aria2 的 RPC 服务端口,客户端(如 Web UI、脚本等)通过此端口与 Aria2 进行通信。如果该端口被占用,可以更改为其他端口号。
3. rpc-secret
- 作用: 设置 RPC 连接的授权令牌(token)。
- 默认值: 无(不设置时不需要认证)
- 配置:
rpc-secret=your_secret_token - 说明: 为了提高安全性,建议设置一个 RPC 授权令牌(用户自行定义,可以设得很简单,但是对于重要资料,建议设得复杂)。客户端在发起 RPC 请求时,需要使用此令牌进行认证。
4. rpc-listen-all
- 作用: 是否允许 RPC 在所有网络接口上监听。
- 默认值:
false(仅在本地回环地址上监听) - 配置:
rpc-listen-all=true - 说明: 默认情况下,RPC 只在本地监听(即只能从本机访问)。如果你希望从其他设备访问 Aria2 的 RPC 服务,则需要启用此选项。
5. rpc-allow-origin-all
- 作用: 是否允许所有来源的跨域请求(CORS)。
- 默认值:
false - 配置:
rpc-allow-origin-all=true - 说明: 如果需要从不同的域名或 IP 地址访问 Aria2(如从 Web UI 管理界面),可以启用此选项以允许跨域请求。
6. rpc-max-request-size
- 作用: 设置 RPC 请求的最大允许大小(单位:字节)。
- 默认值:
2097152(2MB) - 配置:
rpc-max-request-size=2097152 - 说明: 此选项用于限制单个 RPC 请求的大小。默认值通常够用,但在处理大数据量或复杂请求时可以适当增加。
7. rpc-save-upload-metadata
- 作用: 控制是否保存上传的种子文件元数据。
- 默认值:
true - 配置:
rpc-save-upload-metadata=true - 说明: 当你通过 RPC 上传种子文件时,Aria2 会保存这些元数据。启用此选项可以防止数据丢失,但会占用一些存储空间。
总结👺
Aria2 RPC 是一个非常强大和灵活的工具,通过这些配置选项,你可以定制化 RPC 的行为,以满足各种场景的需求。
- 核心配置:
enable-rpc、rpc-listen-port是必不可少的,它们决定了 RPC 是否可用以及如何访问。 - 安全配置:
rpc-secret提供了简单有效的认证机制,确保只有授权用户可以访问 RPC 服务。 - 访问配置:
rpc-listen-all和rpc-allow-origin-all则控制了 RPC 的访问范围和跨域请求的处理,非常适合在多设备环境中使用。 - 性能配置:
rpc-max-request-size和rpc-save-upload-metadata则影响 RPC 的性能和数据处理,适合根据具体需求进行调整。
aria2 rpc 安全性配置选项
非常好,我很高兴为您详细解释aria2的--rpc-secret选项的使用。这个选项对于提高aria2 RPC服务的安全性非常重要。
aria2 --rpc-secret选项介绍
--rpc-secret选项用于设置RPC服务的密钥,为aria2的RPC接口添加一层安全保护。当设置了这个选项后,客户端在连接到aria2 RPC服务时需要提供正确的密钥才能进行操作。
如何使用–rpc-secret
-
在配置文件中设置
在aria2的配置文件(通常是
aria2.conf)中添加以下行:rpc-secret=YOUR_SECRET_KEY将
YOUR_SECRET_KEY替换为你想使用的密钥。 -
通过命令行参数设置
如果你是通过命令行启动aria2,可以这样设置:
aria2c --enable-rpc --rpc-listen-all --rpc-secret=YOUR_SECRET_KEY
安全性建议
-
选择强密钥:使用长且复杂的密钥,包含大小写字母、数字和特殊字符。
-
定期更换:定期更换你的RPC密钥可以提高安全性。
-
使用HTTPS:如果可能,考虑配置aria2使用HTTPS来加密RPC通信。
-
限制IP:如果可能,限制只有特定IP可以访问RPC服务。
启用和配置 Aria2 RPC👺
在使用 RPC 功能之前,你需要确保 Aria2 的 RPC 已正确配置。
配置文件设置
首先,你需要修改 Aria2 的配置文件(通常是 aria2.conf),添加以下内容来启用 RPC:
#允许rpc
enable-rpc=true
#允许非外部访问
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800
# 设置 RPC 授权令牌(提高安全性)
rpc-secret=1# 允许跨域请求(可选,适用于 Web 前端)
rpc-allow-origin-all=true#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=32
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=16
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数
#split=64
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0#文件保存路径, 默认为当前启动位置
#dir="./"
#使用代理
# all-proxy=localhost:1080
启动 Aria2
配置完成后,可以通过命令行启动 Aria2:
aria2c --conf-path=/path/to/aria2.conf
例如aria2c --conf-path=C:\repos\configs\aria2.conf
这样,Aria2 的 RPC 功能就启用了,监听的端口为 6800。
PS C:\Users\cxxu\Desktop> aria2c --conf-path=C:\repos\configs\aria2.conf08/15 19:51:05 [NOTICE] IPv4 RPC: listening on TCP port 680008/15 19:51:05 [NOTICE] IPv6 RPC: listening on TCP port 680008/15 20:17:06 [NOTICE] Download complete: C:/Users/cxxu/Desktop/Cpp/StarsPrinter.exe08/15 20:17:06 [NOTICE] Download complete: C:/Users/cxxu/Desktop/Cpp/TheOfYear.c08/15 20:17:06 [NOTICE] Download complete: C:/Users/cxxu/Desktop/Cpp/a.exe08/15 20:17:06 [NOTICE] Download complete: C:/Users/cxxu/Desktop/Cpp/anni.cpp
- 上述例子中我利用Alist调用aria2 rpc下载了某个文件夹(通过勾选文件夹,发送到aria2下载)
- 下载的每个文件都被记录和输出在了终端
- 如果需要后台运行,和alist自启脚本一起设置后台启动或开机后台自启
使用 Aria2 RPC
使用 Aria2 RPC 控制 Aria2 需要发送 HTTP POST 请求,其中请求内容为 JSON 格式的数据。你可以使用 curl 或编程语言的 HTTP 客户端来发送请求。
aria2 rpc客户端:使用设置了rpc-secret的aria2
使用在线web UI👺
打开以下网页,填写本地aria2 rpc服务地址和密钥(如果有设置的话),可以通过UI来管理本地aria2下载任务
-
Aria2 WebUI (ziahamza.github.io)
-
AriaNg (mayswind.net)
在RPC设置中,你需要在密钥(Secret)字段填入你设置的密钥。
使用API直接连接
如果你是通过编程方式直接调用aria2的RPC API,你需要在每个JSON-RPC请求中添加token:前缀和你的密钥。例如:
{"jsonrpc":"2.0","method":"aria2.addUri","id":"qwer","params":["token:YOUR_SECRET_KEY",["http://example.com/file.zip"]]
}
使用aria2客户端库
很多编程语言的aria2客户端库都支持设置RPC密钥。你通常需要在创建客户端时提供这个密钥。
Alist配置aria2 rpc实现批量下载或文件夹下载
-
知道aria2 rpc是怎么回事,我们就可以用它来配置alist的批量下载或文件夹下载
- 假设有两台设备S,C(分别是服务器server以及客户端Client)
- 试验之前,确保你的客户端上下载器aria2 rpc服务启动成功并处于运行状态(假设aria2 rpc地址
http://localhost:6800/jsonrpc,这是默认地址);密钥如果你设置了,就需要填写,如果没有设置,那么不需要填写 - 在设备C上打开了S的Alist链接,想要下载上面的某些个文件夹
- 这时候可以先在网页前端填写上述rpc地址(如果有密钥需要一并填写),填写位置可以找找右下角的齿轮,展开它,点击到设置填写
- 选择启用复选框,这样方便选取需要下载的文件后文件夹
- 然后选择好下载对象后,网页下方中间位置有下载按钮,点击其中的发送到Aria2选项,顺利的话会提示你发送成功,可以查看下载日志,或者你配置在aria2 配置文件中指定的保存目录(没有指定的话,则默认下载到启动aria2 rpc的工作目录下)
-
相关文档
-
alist网页中的功能布局和按钮:侧边栏|设置 | AList文档 (nn.ci)
-
离线下载|其他设置 | AList文档 (nn.ci)
-
Alist中的Aria2的应用|为什么 | AList文档 (nn.ci)
-
-
虽然批量下载的问题解决了,但是这要求客户端上安装了aria2(或者将来其他支持的软件),并且启动了aria2 rpc服务,便捷性还是有所欠缺(不如挂webdav来的直接)
命令行客户端(TODO)
添加下载任务
下面的示例展示了如何通过 RPC 添加一个下载任务:
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","method": "aria2.addUri","id": "qwer","params": ["token:your_secret_token",["http://example.com/file.zip"]]
}' http://localhost:6800/jsonrpc
解释:
- method:
aria2.addUri表示添加下载任务的操作。 - params:第一个参数为
token:your_secret_token(RPC 授权令牌),第二个参数是下载链接的数组。 - id:可选,用于标识请求,可以是任意字符串。
暂停下载任务
要暂停一个正在下载的任务,可以使用以下 RPC 请求:
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","method": "aria2.pause","id": "qwer","params": ["token:your_secret_token","task_gid"]
}' http://localhost:6800/jsonrpc
其中 task_gid 是任务的全局唯一标识符,可以从添加任务的返回结果或任务查询中获取。
查询任务状态
你可以通过以下请求查询当前正在进行的所有任务:
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","method": "aria2.tellActive","id": "qwer","params": ["token:your_secret_token"]
}' http://localhost:6800/jsonrpc
返回结果将包含所有活跃任务的详细信息,包括下载速度、已下载大小、剩余时间等。
相关文章:
Aria2@RPC下载@Alist批量下载
文章目录 abstractAria2 RPC 概述RPC 的主要功能在线文档aria2的配置文件与启动选项使用配置文件设置aria2 rpc功能Aria2关于rpc的离线文档 Aria2 RPC 重要和常用选项1. enable-rpc2. rpc-listen-port3. rpc-secret4. rpc-listen-all5. rpc-allow-origin-all6. rpc-max-request…...
神经串联式语音转换:对基于串联的单次语音转换方法的再思考 论文笔记
NEURAL CONCATENATIVE SINGING VOICE CONVERSION: RETHINKING CONCATENATION-BASED APPROACH FOR ONE-SHOT SINGING VOICE CONVERSION 笔记 发现问题: 在any-to-any的转换中,由于内容和说话人音色的解耦不足,导致源说话人的音色部分仍保留在转换后的音频中&#x…...
机器学习(1)--数据可视化
文章目录 数据可视化作用可视化方法实现可视化 总结 数据可视化 数据可视化是将数据以图形、图像、动画等视觉形式表示出来,以便人们能够更直观地理解、分析和交流数据中的信息。 作用 一个整理的好好的数据,我们为什么要将其可视化呢?将它…...
docker部署Prometheus、Grafana
docker部署Prometheus 1、 拉取prometheus镜像 docler pull prom/prometheus 遇到问题:注意下科学上网。 2、将prometheus配置文件放在外面管理 prometheus.yml global:scrape_interval: 15sevaluation_interval: 15salerting:alertmanagers:- static_configs:-…...
5.mysql多表查询
MYSQL多表查询 MYSQL多表查询1.多表关系笛卡尔积 2. 多表查询概述2.1 内连接2.2 外连接2.3自连接联合查询union ,union all 2.4子查询2.4.1标量子查询2.4.2列子查询2.4.3行子查询2.4.4表子查询 MYSQL多表查询 create table student(id int auto_increment primary …...
【前端面试】挖掘做过的nextJS项目(上)
为什么使用nextJS 需求: 快速搭建宣传官网 1.适应pc、移动端 2.基本的路由跳转 3.页面渲染优化 4.宣传的图片、视频资源的加载优化 5.seo优化 全栈react web应用、 tailwind css原子工具的支持,方便书写响应式ui app router(React 服务器组件)支持服务器渲…...
【Unity-UGUI】UGUI知识汇总
目录 前言1 UGUI系统原理2 事件系统2.1 EventSystem2.2 InputModules2.3 Raycasters2.4 协作 3 UGUI系统的组件3.1 Image和RawImage3.2 Mask和RectMask2D 扩展UI穿透问题 前言 记录一些最近学到的有关UGUI的知识。 参考 知乎:6千字带你入门UGUI源码 书籍ÿ…...
JavaScript性能测试:策略、工具与实践
在Web开发中,性能测试是确保应用程序达到预期响应速度和处理能力的关键步骤。JavaScript作为构建交互式Web应用的核心语言,其性能直接影响用户体验。本文将详细介绍如何使用JavaScript进行性能测试,包括性能测试的基本概念、测试类型、工具、…...
嵌入式软件开发学习一:软件安装(保姆级教程)
资源下载: 江协科技提供: 资料下载 一、安装Keil5 MDK 1、双击.EXE文件,开始安装 2、 3、 4、此处尽量不要安装在C盘,安装路径选择纯英文,防止后续开发报错 5、 6、 7、弹出来的窗口全部关闭,进入下一步&a…...
SpringMVC学习中遇到的不懂注解记录
文章目录 Autowrite 和 ResourceQualifier 和 PrimaryPathVariableController、Service、Repository 和 Component Autowrite 和 Resource 我们先讲讲 Autowrite 注解 吧。 public class StudentService3 implements IStudentService {//Autowiredprivate IStudentDao studentD…...
Java面试题--分布式锁
分布式锁 你说一下什么是分布式锁 分布式锁是在分布式/集群环境中解决多线程并发造成的一系列数据安全问题.所用到的锁就是分布式锁,这种锁需要被多个应用共享才可以,通常使用Redis和zookeeper来实现。 分布式锁有哪些解决方案 常用的三种方案 基于…...
一文讲清数据平台与数据中台的关系与区别
前言 如果您是IT领域或者数据领域的从业者,一定对IT行业“创造”概念的能力深有体会,也一定经常被看起来名称相似,但又不同的各种概念绕的云里雾里,摸不着头脑。今天我们要讨论的是数据平台和数据中台两个概念,您是不…...
Android的Service和Thread的区别
Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件。 Android Service是组件,既不能说它是单独的进程也不能说它是单独的线程。 如果非要从通俗的语言层面来理解的话,姑且将其理解为对象。这个Service对象本身作为应用程序的一部分与它的…...
经纬恒润亮相第四届焉知汽车年会,功能安全赋能域控
8月初,第四届焉知汽车年会在上海举行。此次年会围绕当下智能电动汽车的热点和焦点,聚焦于智能汽车场景应用、车载通信、激光雷达、智能座舱、功能安全、电驱动系统等多个领域,汇聚了来自OEM、科技公司、零部件供应商、测试认证机构、政府院校…...
掌握JavaScript单元测试:最佳实践与技术指南
单元测试是软件开发过程中的关键环节,它帮助开发者确保代码的每个独立部分按预期工作。在JavaScript开发中,进行单元测试不仅可以提高代码质量,还可以加快开发速度,因为它们为代码更改提供了安全网。本文将详细介绍如何使用JavaSc…...
spring boot 古茶树管理系统---附源码19810
目 录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2古茶树管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2经济可行性分析 2.1.3操作可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 …...
00067期 matlab中的asv文件
今天在编写代码的过程中,发现自动生成.m文件的同名文件.asv,特此发出疑问?下面是解答: 有时在存放m文件的文件夹中会出现*.asv asv 就是auto save的意思,*.asv文件的内容和相应的*.m文件内容一样,用记…...
JMeter高效管理测试数据-参数化
文章目录 1.什么是参数化2.定义变量3.CSV数据文件设置 1.什么是参数化 在JMeter中,参数化是一种常用的技术,用于使测试场景更加灵活和动态。通过参数化,你可以让JMeter在每次请求中使用不同的值,这在模拟真实用户行为或测试不同输…...
python学习之writelines
在Python中,writelines() 是一个方法,它属于文件对象,用于将字符串列表写入到文件中。这个方法接受一个序列(如列表或元组)作为参数,序列中的每个元素都是要写入的一行文本。 ### 函数定义: p…...
STM32学习笔记13-FLASH闪存
FLASH简介 STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程读写FLASH的用途: 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 通过在…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...
C# winform教程(二)----checkbox
一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...
网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...
Oracle实用参考(13)——Oracle for Linux物理DG环境搭建(2)
13.2. Oracle for Linux物理DG环境搭建 Oracle 数据库的DataGuard技术方案,业界也称为DG,其在数据库高可用、容灾及负载分离等方面,都有着非常广泛的应用,对此,前面相关章节已做过较为详尽的讲解,此处不再赘述。 需要说明的是, DG方案又分为物理DG和逻辑DG,两者的搭建…...
华为OD机考- 简单的自动曝光/平均像素
import java.util.Arrays; import java.util.Scanner;public class DemoTest4 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint[] arr Array…...
