戰(zhàn)指南:從 0 到 1 對接群暉 NAS)
Synology API Python 封裝庫實(shí)戰(zhàn)指南從 0 到 1 對接群暉 NAS【免費(fèi)下載鏈接】synology-apiA Python wrapper around Synology API項(xiàng)目地址: https://gitcode.com/gh_mirrors/sy/synology-api想在代碼里操作群暉 NAS——列文件、傳文件、看磁盤狀態(tài)、管下載任務(wù)——手動拼 DSM 的 HTTP 接口和登錄態(tài)管理既繁瑣又容易錯。synology-api是一個 Python 封裝庫把 Synology API 的登錄、會話、各模塊接口全部包好你拿到對象就能直接調(diào)方法。它已實(shí)現(xiàn) 300 多個 DSM 模塊接口只依賴requests等少量庫適合寫 NAS 運(yùn)維腳本、自動化任務(wù)和上層應(yīng)用。 30 秒完成首次調(diào)用裝包、建對象、調(diào)方法三步跑通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()) # 實(shí)例化即自動登錄能打印出信息說明對接成功登錄在實(shí)例化時自動完成會話在進(jìn)程內(nèi)共享同一個腳本里再建DownloadStation、Photos等其他對象不會重復(fù)登錄。 核心能力地圖庫按 DSM 模塊拆成一個個類導(dǎo)入哪個模塊就得到哪個類的能力文件管理FileStation列目錄、上傳下載、壓縮解壓。關(guān)鍵調(diào)用fs.get_file_list(/home)返回目錄列表fs.download_file(...)直接落盤到本地。下載站DownloadStation給 NAS 的下載中心加任務(wù)、看進(jìn)度ds.list_tasks()取全部任務(wù)。系統(tǒng)管理Core.System/Core.Storage/Core.Share查主機(jī)信息、CPU/內(nèi)存占用、磁盤健康、共享文件夾寫監(jiān)控告警腳本夠用。用戶與權(quán)限Core.User/Core.Group建刪用戶、改密碼、管理用戶組。照片Photos列相冊與文件夾ph.list_folders(...)。容器Docker拉鏡像、啟停容器docker_api.py對應(yīng)。安全SecurityAdvisor查漏洞、防火墻規(guī)則、弱口令風(fēng)險(xiǎn)。異步模式AsyncClient任何同步類包一層即可 await多個請求并行發(fā)適合批量拉取場景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里的自動生成清單。?? 初始化參數(shù)速查所有模塊類共用同一套構(gòu)造參數(shù)BaseApi最常改的幾個參數(shù)默認(rèn)值說明ip_address/port必填NAS 地址與端口HTTP 通常5000HTTPS 用443或5001port是字符串username/password必填登錄賬號開了雙因素時加otp_code123456secureFalse是否走 HTTPScert_verifyFalse是否校驗(yàn)證書NAS 自簽證書場景保持Falsedsm_version7NAS 是 DSM 6 必須顯式傳6quickconnect_idNone外網(wǎng)用 QuickConnect ID 時傳它免 IP/端口且自動 HTTPSdevice_id/device_nameNone開啟 DSM 設(shè)備綁定時需要debugTrue打印調(diào)試日志排錯時保留沒有配置文件所有連接信息都在構(gòu)造時傳入想避免硬編碼從環(huán)境變量讀取即可。?? 實(shí)戰(zhàn)中容易踩的三個坑DSM 6 的老 NAS 登錄失敗或接口報(bào)119/102dsm_version默認(rèn)7DSM 6 設(shè)備務(wù)必傳dsm_version6這是最常見的對接失敗原因。HTTPS 端口搞錯secureTrue時端口要寫 HTTPS 端口443或5001不是5000自簽證書不用管cert_verify默認(rèn)False正好。開了雙因素2FA實(shí)例化會直接失敗把當(dāng)前的 6 位驗(yàn)證碼通過otp_code傳進(jìn)去驗(yàn)證碼是動態(tài)的腳本里需要留個手動輸入的口子。 下一步想知道某個模塊有哪些方法直接翻synology_api/下對應(yīng)文件如filestation.py方法名即接口名docstring 里有完整參數(shù)說明。查某個SYNO.xxx接口歸屬哪個類documentation/docs/apis/readme.md是全量對照表。想自己寫個模塊封裝參考scripts/docs_parser/它負(fù)責(zé)從源碼 docstring 自動生成 API 文檔?!久赓M(fèi)下載鏈接】synology-apiA Python wrapper around Synology API項(xiàng)目地址: https://gitcode.com/gh_mirrors/sy/synology-api創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考