Aira2 docker部署 以及PHPapi示例
2026-04-27原创插件祥技术支持7°c
A+ A-docker-compose.yml
version: "3" services: aria2: image: p3terx/aria2-pro container_name: aria2 restart: unless-stopped logging: options: max-size: 1m ports: - "6800:6800" - "6888:6888" - "6888:6888/udp" environment: - PUID=0 - PGID=0 - RPC_SECRET=这是密码 - RPC_PORT=6800 - LISTEN_PORT=6888 volumes: - /vol3/1000/work/Aria2/downloads:/downloads - /vol3/1000/work/Aria2/config:/config
php api示例
<?php
namespace Au;
class Aria2
{
private $rpcUrl = 'http://192.168.2.115:6800/jsonrpc';
private $token = '你的密码';
/**
* 构造函数
* @param string $rpcUrl http://ip:6800/jsonrpc
* @param string $token RPC密钥
*/
public function __construct(string $rpcUrl='', string $token='')
{
$this->rpcUrl = $rpcUrl ? $rpcUrl : $this->rpcUrl;
$this->token = $token ? $token : $this->token;
}
/**
* 发送JSON-RPC请求
*/
private function request(string $method, array $params = [])
{
$data = [
'jsonrpc' => '2.0',
'id' => uniqid(),
'method' => $method,
'params' => array_merge(["token:{$this->token}"], $params)
];
$ch = curl_init($this->rpcUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// ====================== 下载任务管理 ======================
/**
* 创建HTTP/HTTPS/FTP下载任务
* @param string|array $url 下载链接
* @param array $options 参数 dir保存目录 out文件名 split线程数
* @return array
*/
public function addUri($url, array $options = [])
{
return $this->request('aria2.addUri', [
is_array($url) ? $url : [$url],
$options
]);
}
/**
* 查询任务状态
*/
public function tellStatus(string $gid)
{
return $this->request('aria2.tellStatus', [$gid]);
}
/**
* 暂停任务
*/
public function pause(string $gid)
{
return $this->request('aria2.pause', [$gid]);
}
/**
* 暂停全部任务
*/
public function pauseAll()
{
return $this->request('aria2.pauseAll');
}
/**
* 继续任务
*/
public function unpause(string $gid)
{
return $this->request('aria2.unpause', [$gid]);
}
/**
* 继续全部任务
*/
public function unpauseAll()
{
return $this->request('aria2.unpauseAll');
}
/**
* 删除任务
*/
public function remove(string $gid)
{
return $this->request('aria2.remove', [$gid]);
}
// ====================== 任务列表 ======================
/**
* 获取活动任务(下载中)
*/
public function tellActive()
{
return $this->request('aria2.tellActive');
}
/**
* 获取等待任务
*/
public function tellWaiting()
{
return $this->request('aria2.tellWaiting', [0, 100]);
}
/**
* 获取已停止/完成任务
*/
public function tellStopped()
{
return $this->request('aria2.tellStopped', [0, 100]);
}
// ====================== 全局操作 ======================
/**
* 获取全局状态
*/
public function getGlobalStat()
{
return $this->request('aria2.getGlobalStat');
}
/**
* 获取版本信息
*/
public function getVersion()
{
return $this->request('aria2.getVersion');
}
/**
* 清空已完成/已停止任务
*/
public function purgeDownloadResult()
{
return $this->request('aria2.purgeDownloadResult');
}
}123云盘分享
更新时间:2026年04月27日 10:08:11
未定义标签



