拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Synology API Python 封装库实战指南:从 0 到 1 对接群晖 NAS

Synology API Python 封装库实战指南从 0 到 1 对接群晖 NAS【免费下载链接】synology-apiA Python wrapper around Synology API项目地址: https://gitcode.com/gh_mirrors/sy/synology-api想在代码里操作群晖 NAS——列文件、传文件、看磁盘状态、管下载任务——手动拼 DSM 的 HTTP 接口和登录态管理既繁琐又容易错。synology-api是一个 Python 封装库把 Synology API 的登录、会话、各模块接口全部包好你拿到对象就能直接调方法。它已实现 300 多个 DSM 模块接口只依赖requests等少量库适合写 NAS 运维脚本、自动化任务和上层应用。 30 秒完成首次调用装包、建对象、调方法三步跑通pip3 install synology-apifrom synology_api.filestation import FileStation fs FileStation(192.168.1.100, 5000, admin, pass, secureFalse, cert_verifyFalse, dsm_version7) # IP、端口、账号、密码 print(fs.get_info()) # 实例化即自动登录能打印出信息说明对接成功登录在实例化时自动完成会话在进程内共享同一个脚本里再建DownloadStation、Photos等其他对象不会重复登录。 核心能力地图库按 DSM 模块拆成一个个类导入哪个模块就得到哪个类的能力文件管理FileStation列目录、上传下载、压缩解压。关键调用fs.get_file_list(/home)返回目录列表fs.download_file(...)直接落盘到本地。下载站DownloadStation给 NAS 的下载中心加任务、看进度ds.list_tasks()取全部任务。系统管理Core.System/Core.Storage/Core.Share查主机信息、CPU/内存占用、磁盘健康、共享文件夹写监控告警脚本够用。用户与权限Core.User/Core.Group建删用户、改密码、管理用户组。照片Photos列相册与文件夹ph.list_folders(...)。容器Docker拉镜像、启停容器docker_api.py对应。安全SecurityAdvisor查漏洞、防火墙规则、弱口令风险。异步模式AsyncClient任何同步类包一层即可 await多个请求并行发适合批量拉取场景from synology_api.async_client import AsyncClient async def main(): fs AsyncClient(FileStation(192.168.1.100, 5000, admin, pass)) a, b await asyncio.gather( fs.get_file_list(/home), fs.get_file_list(/photo)) # 并行拉取完整支持哪些模块看documentation/docs/apis/readme.md里的自动生成清单。⚙️ 初始化参数速查所有模块类共用同一套构造参数BaseApi最常改的几个参数默认值说明ip_address/port必填NAS 地址与端口HTTP 通常5000HTTPS 用443或5001port是字符串username/password必填登录账号开了双因素时加otp_code123456secureFalse是否走 HTTPScert_verifyFalse是否校验证书NAS 自签证书场景保持Falsedsm_version7NAS 是 DSM 6 必须显式传6quickconnect_idNone外网用 QuickConnect ID 时传它免 IP/端口且自动 HTTPSdevice_id/device_nameNone开启 DSM 设备绑定时需要debugTrue打印调试日志排错时保留没有配置文件所有连接信息都在构造时传入想避免硬编码从环境变量读取即可。⚠️ 实战中容易踩的三个坑DSM 6 的老 NAS 登录失败或接口报119/102dsm_version默认7DSM 6 设备务必传dsm_version6这是最常见的对接失败原因。HTTPS 端口搞错secureTrue时端口要写 HTTPS 端口443或5001不是5000自签证书不用管cert_verify默认False正好。开了双因素2FA实例化会直接失败把当前的 6 位验证码通过otp_code传进去验证码是动态的脚本里需要留个手动输入的口子。 下一步想知道某个模块有哪些方法直接翻synology_api/下对应文件如filestation.py方法名即接口名docstring 里有完整参数说明。查某个SYNO.xxx接口归属哪个类documentation/docs/apis/readme.md是全量对照表。想自己写个模块封装参考scripts/docs_parser/它负责从源码 docstring 自动生成 API 文档。【免费下载链接】synology-apiA Python wrapper around Synology API项目地址: https://gitcode.com/gh_mirrors/sy/synology-api创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门