ByteNoteByteNote

字节笔记本

2026年2月22日

Synology Download Station 官方 API 开发指南

API中转
¥120

本文介绍 Synology Download Station 官方 API 的完整开发指南,帮助开发者基于 Download Station API 构建应用程序,通过 HTTP 请求与群晖 NAS 的下载服务进行交互。

文档概述

Synology Download Station 是群晖 NAS 中最受欢迎的套件之一,提供强大的下载管理功能。本文档详细介绍 Download Station API 的结构和规范,包括基础 API 和 Download Station 专用 API 的完整说明。

API 工作流程

使用 Download Station API 需要遵循以下四个步骤:

1. 获取 API 信息

首先需要查询目标 DiskStation 上可用的 API 列表,通过 SYNO.API.Info API 的 query.cgi 接口获取。

请求示例:

GET /webapi/query.cgi?api=SYNO.API.Info&version=1&method=query&query=all

响应包含:

  • API 名称
  • CGI 路径
  • 支持的版本信息

2. 会话登录

使用 DSM 账号和密码通过 SYNO.API.Auth API 登录会话。

请求示例:

GET /webapi/auth.cgi?api=SYNO.API.Auth&version=2&method=login&account=admin&passwd=12345&session=DownloadStation&format=cookie

3. 调用 Download API

登录成功后,可以调用所有可用的 Download Station API。

4. 会话注销

完成操作后,通过 SYNO.API.Auth API 的 logout 方法结束会话。

请求构造规范

所有 API 请求需要包含以下基本元素:

参数说明
apiAPI 名称
versionAPI 版本
pathCGI 路径(通过 SYNO.API.Info 获取)
method请求方法
_sid授权会话 ID(通过 Cookie 或 GET/POST 参数传递)

请求语法:

GET /webapi/<CGI_PATH>?api=<API_NAME>&version=<VERSION>&method=<METHOD>[&<PARAMS>][&_sid=<SID>]

响应解析

所有 API 响应均采用 JSON 格式,包含以下字段:

字段类型说明
successboolean请求是否成功
dataobject响应数据对象
errorinteger错误代码(请求失败时返回)

成功响应示例:

json
{
  "success": true,
  "data": {
    "is_manager": true,
    "version": 2269,
    "version_string": "3.2-2269"
  }
}

失败响应示例:

json
{
  "success": false,
  "error": 101
}

通用错误代码

代码说明
100未知错误
101参数无效
102API 不存在
103方法不存在
104版本不支持该功能
105会话无权限
106会话超时
107会话被重复登录中断

基础 API

SYNO.API.Info

提供可用 API 信息查询。

方法: query

参数:

  • query: API 名称列表(逗号分隔)或使用 ALL 获取所有支持的 API

响应对象:

  • path: API CGI 路径
  • minVersion: 最小支持版本
  • maxVersion: 最大支持版本

SYNO.API.Auth

执行会话登录和注销。

登录方法: login

参数:

  • account: 登录账号
  • passwd: 登录密码
  • session: 会话名称
  • format: 会话 ID 返回格式(cookiesid
  • otp_code: 2步验证代码(DSM 4.2+)

注销方法: logout

参数:

  • session: 要注销的会话名称

错误代码:

  • 400: 账号不存在或密码错误
  • 401: 账号已禁用
  • 402: 权限被拒绝
  • 403: 需要2步验证码
  • 404: 2步验证失败

Download Station API

SYNO.DownloadStation.Info

提供 Download Station 信息和设置管理。

方法:

  • getinfo: 获取 Download Station 信息
  • getconfig: 获取服务器配置
  • setserverconfig: 设置服务器配置

配置参数包括:

  • bt_max_download: BT 最大下载速度(KB/s,0 表示无限制)
  • bt_max_upload: BT 最大上传速度(KB/s)
  • emule_max_download: eMule 最大下载速度
  • emule_max_upload: eMule 最大上传速度
  • nzb_max_download: NZB 最大下载速度
  • http_max_download: HTTP 最大下载速度
  • ftp_max_download: FTP 最大下载速度
  • emule_enabled: eMule 服务是否启用
  • unzip_service_enabled: 自动解压服务是否启用
  • default_destination: 默认下载路径
  • emule_default_destination: eMule 默认路径

SYNO.DownloadStation.Schedule

提供高级下载计划设置。

方法:

  • getconfig: 获取计划配置
  • setconfig: 设置计划配置

参数:

  • enabled: 下载计划是否启用
  • emule_enabled: eMule 下载计划是否启用

SYNO.DownloadStation.Task

提供下载任务管理和操作。

方法:

  • list: 获取任务列表
  • getinfo: 获取任务详细信息
  • create: 创建下载任务
  • delete: 删除任务
  • pause: 暂停任务
  • resume: 恢复任务
  • edit: 编辑任务

List 方法参数:

  • offset: 起始记录位置(默认 0)
  • limit: 请求记录数量(-1 表示所有任务)
  • additional: 额外信息选项(逗号分隔)
    • detail: 任务详情
    • transfer: 传输信息
    • file: 文件信息(仅 BT)
    • tracker: Tracker 信息(仅 BT)
    • peer: Peer 信息(仅 BT)

任务对象字段:

  • id: 任务 ID
  • type: 任务类型(bt/http/ftp/emule/nzb)
  • username: 用户名
  • title: 任务标题
  • size: 文件大小
  • status: 任务状态
  • status_extra: 额外状态信息

Create 方法参数:

  • uri: 下载链接(HTTP/FTP/magnet/ED2K)或文件路径
  • file: 上传的文件
  • username: 登录用户名
  • password: 登录密码
  • unzip_password: 解压密码
  • destination: 下载目标路径

SYNO.DownloadStation.Statistic

提供总下载/上传统计信息。

方法: getinfo

响应包含:

  • 总下载速度
  • 总上传速度

SYNO.DownloadStation.RSS.Site

提供 RSS 站点管理。

方法:

  • list: 获取 RSS 站点列表
  • refresh: 刷新 RSS 站点

SYNO.DownloadStation.RSS.Feed

提供 RSS 订阅源管理。

方法: list

参数:

  • offset: 起始位置
  • limit: 数量限制

SYNO.DownloadStation.BTSearch

提供 BT 搜索功能。

方法:

  • start: 开始搜索
  • list: 获取搜索结果

完整工作示例

以下是从登录到获取下载任务列表的完整示例:

步骤 1: 获取 API 信息

GET http://myds.com:5000/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query&query=SYNO.API.Auth,SYNO.DownloadStation.Task

步骤 2: 会话登录

GET http://myds.com:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=2&method=login&account=admin&passwd=12345&session=DownloadStation&format=cookie

响应:

json
{
  "data": {
    "sid": "ohOCjwhHhwghw"
  },
  "success": true
}

步骤 3: 请求下载任务列表

GET http://myds.com:5000/webapi/DownloadStation/task.cgi?api=SYNO.DownloadStation.Task&version=1&method=list&additional=detail,transfer

步骤 4: 会话注销

GET http://myds.com:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=1&method=logout&session=DownloadStation

任务状态说明

状态说明
waiting等待中
downloading下载中
paused已暂停
finished已完成
error错误
hashing校验中
seeding做种中(BT)
filehosting_waiting网盘等待中
extracting解压中

注意事项

  1. 版本兼容性:所有 Download Station API 需要 DSM 4.0 或更高版本
  2. 权限要求:部分配置操作需要管理员权限
  3. 速率限制:HTTP 和 FTP 最大下载速率共享同一配置值
  4. 会话管理:建议操作完成后及时注销会话
  5. 2步验证:DSM 4.2+ 支持 2步验证,需要在登录时提供 otp_code 参数

参考链接

分享: