调用Synology NAS API获取总空间和可用空间时list_share返回空问题咨询
问题原因及解决方案
additional参数格式错误
Synology FileStation API的additional参数要求传入JSON数组格式的字符串,你当前直接传volume_status不符合接口规范。正确的未编码参数写法为additional=["volume_status"],放在URL中需要对特殊符号做URL编码,编码后为additional=%5B%22volume_status%22%5D。共享列表为空排查方向
如果修正参数后依然返回空的shares列表,确认你获取Token时使用的账号,在DSM系统中拥有至少只读的共享文件夹访问权限,无权限的账号调用list_share会返回空列表但接口状态显示成功。
常见疑问解答
- 不需要将
list_share改为list:list_share是枚举所有共享文件夹的专用接口,list方法需要传入folder_path参数查询指定目录下的文件列表,不符合你获取卷空间的需求。
可用请求示例
修正参数后的list_share请求
https://NAME:5001/webapi/entry.cgi?api=SYNO.FileStation.List&version=2&method=list_share&additional=%5B%22volume_status%22%5D&_sid=TOKEN
返回结果的每个共享文件夹项的additional字段中会包含对应卷的总空间、可用空间信息。
更高效的卷空间查询方案
如果你只需要获取整台设备的卷总空间、可用空间,无需关联共享文件夹信息,可以直接调用存储管理API,无需走FileStation接口:
https://NAME:5001/webapi/entry.cgi?api=SYNO.Storage.Volume&version=1&method=list&_sid=TOKEN
返回结果中会直接包含所有卷的total_size、used_size、free_size字段,解析更方便。
验证步骤
- 先移除
additional参数调用list_share接口,如果能返回正常的共享文件夹列表,说明仅为参数格式问题;如果依然返回空列表,优先排查账号权限。 - 确认你使用的v2版本
SYNO.FileStation.List接口适配DSM 6.2及以上系统版本,若设备系统版本更低,需将接口版本调整为v1。
内容的提问来源于stack exchange,提问作者Baul
相关产品推荐
相关产品推荐

