Synology API 对接指南:用 Python 三步管起来你的群晖 NAS

发布时间:2026/8/22 17:49:18
Synology API 对接指南:用 Python 三步管起来你的群晖 NAS Synology API 对接指南用 Python 三步管起来你的群晖 NAS【免费下载链接】synology-apiA Python wrapper around Synology API项目地址: https://gitcode.com/gh_mirrors/sy/synology-api把群晖 NAS 变成可编程设备只需一个 Python 库synology-api 是一个免费的 Python 封装库帮你用代码直接操作群晖 NAS而不用每次打开网页界面点点点。它适合想写自动化脚本的开发者也适合想把 NAS 接进 Home Assistant、监控系统或自有后端项目的普通用户。当你要批量管理文件、定时备份、或者远程查看存储状态时这个库提供的 300 多个 API 调用会直接省去你拼 HTTP 请求、处理登录加密的全部麻烦。核心能力拆解它能替你干哪些活库按功能模块组织每个模块对应群晖的一个应用场景你按需导入即可文件管理上传、下载、搜索、建共享链接。当你想在脚本里定期备份某个目录到 NAS 时filestation.py 提供的upload_file、create_sharing_link等方法就是为你准备的。下载站任务当你要用链接拉一个大文件而不想守着界面时DownloadStation 模块可以直接创建下载任务、暂停、删除。系统监控CPU 温度、磁盘 SMART 状态、存储池信息一条方法调用拿回 JSON适合做告警脚本。Docker 容器管理当你要批量重启容器、拉镜像时docker_api.py 把容器启停、日志查询都包装成了方法。其他Photos 相册管理、Surveillance Station 监控录像、Task Scheduler 定时任务、用户与群组管理等等模块覆盖很全synology_api 目录下一个文件对应一个场景。登录认证、会话管理这些脏活由 auth.py 统一处理包括 DSM 的加密握手和 OTP 两步验证你基本不用关心细节。从零跑通核心流程三步走第一步安装。库通过 pip 分发一条命令装好pip3 install synology-api第二步连接。导入你要用的模块传入 NAS 的 IP、端口、用户名、密码完成实例化。连接会在实例化时自动建立DSM 版本默认按 7 处理from synology_api.filestation import FileStation fs FileStation(NAS的IP, 5001, 用户名, 密码, secureTrue, cert_verifyFalse, dsm_version7)第三步调用。之后就是普通的方法调用返回值是结构化字典shares fs.get_list_share() # 获取所有共享文件夹 files fs.get_file_list(/home)如果你的脚本跑在外部网络、没有内网 IP 可直连把 IP 和端口换成 NAS 的 QuickConnect ID 即可HTTPS 会自动启用fs FileStation(quickconnect_id你的QID, username用户名, password密码, cert_verifyFalse)另外它还有一个异步客户端用 async_client.py 的AsyncClient包一层原有方法自动变成可await的方便你用asyncio.gather并发拉多个文件夹的信息不需要引入额外依赖。灵活适配你的环境连接参数不用写死在代码里按你的场景选一种方式直接传参最直观适合一次性脚本和快速验证。环境变量当你的脚本要部署到服务器、密码不能明文进仓库时从环境变量读 IP 和账号再传入构造函数是最稳妥的做法。调 HTTPS 与证书局域网 HTTP 就把secure设为False走 HTTPS 但用自签证书时设secureTrue, cert_verifyFalse即可跳过证书校验。两步验证用户开启 OTP 的账号传入otp_code参数就能正常登录。调试开关debugTrue默认会打印调试信息排查问题时有用正式跑批时可以关掉。同一个进程里多个模块实例会自动共享同一个会话所以你同时用 FileStation 和 DownloadStation 只会登录一次。常见卡点与排查如果你遇到LoginError通常是账号密码错、两步验证没传otp_code或者该账号没有 Web 管理权限。确认密码无误并检查 NAS 的登录设置exceptions.py 里的异常类型会告诉你具体卡在哪一步。如果你遇到SynoConnectionError一般是 IP/端口不通或 HTTPS 配置不匹配——5000 是 HTTP 默认端口443/5001 常用于 HTTPS确认端口和secure参数对得上用浏览器能打开 DSM 界面再回来调代码。如果方法返回的是错误码字符串而不是数据说明 NAS 上的 DSM 版本与默认dsm_version7不一致把它改成你的实际版本6 或 7再试。下一步行动跑通上面的流程后你可以立刻做两件有价值的事写一个每日巡检脚本调一下系统状态接口把 CPU 温度和磁盘 SMART 状态抓下来超过阈值就推送到你的通知渠道。接进你的自动化平台把它封装成 Home Assistant 自定义组件或一个简单的 Web 服务让 NAS 状态出现在你自己的面板上。库的接口数量还在持续增加先从你最高频的一个场景切入跑顺一个模块再逐步扩展到下一个。【免费下载链接】synology-apiA Python wrapper around Synology API项目地址: https://gitcode.com/gh_mirrors/sy/synology-api创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考