NAS 卷浏览器 API 参考
如何使用 VergeOS volume_browser API 以编程方式浏览 NAS 卷内容,包括异步任务工作流、结果轮询和常见问题排障。
概述
该 volume_browser API 为 NAS 卷提供文件系统浏览功能。这对于自动化、集成以及构建自定义文件管理工具非常有用。
前提条件
一个正在运行的 NAS 服务,且至少有一个在线卷
具有适当权限的 API 访问
卷的 SHA1 密钥标识符(可在卷仪表板 URL 或 API 中找到)
工作原理
浏览卷是一个两步过程:
POST 更改为
/api/v4/volume_browser用于创建浏览任务GET 更改为
/api/v4/volume_browser/{job_id}?fields=id,status,result用于轮询结果
步骤 1:创建浏览请求
端点
请求体
字段参考
volume
字符串
是
卷密钥(SHA1 哈希标识符)
query
字符串
是
操作类型: get-dir, rename, delete, paste
params
对象
是
查询参数(见下文)
Params 对象
dir
字符串
要浏览的目录路径。使用 "" 表示根目录。
limit
整数
要返回的最大条目数(例如 1000)
offset
整数/null
分页偏移量, null 用于第一页
filter.extensions
字符串
按文件扩展名过滤(空字符串表示全部)
volume
字符串
卷密钥(必须与顶层 volume)
sort
字符串
排序字段(空字符串为默认值)
响应
该 $key 字段包含轮询所需的任务 ID。
步骤 2:轮询结果
端点
关键:请求 Result 字段
该 result 字段 默认不会返回。你必须显式使用 ?fields=id,status,result请求它。没有此参数,你只会收到状态信息。
不带 ?fields=id,status,result:
带 ?fields=id,status,result:
状态值
running
任务仍在处理
complete
任务成功完成
error
任务失败(检查 result 以获取错误信息)
轮询策略
结果格式
当 status 是 complete, result 字段包含一个文件/目录条目数组:
条目字段
name
字符串
文件或目录名称
n_name
字符串
规范化名称(小写)
size
整数
字节大小
date
整数
修改时间(Unix 时间戳)
type
字符串
"file" 或 "directory"
空目录
对于空目录, result 将是一个空数组:
示例
cURL
Python
故障排除
常见问题
结果字段为空或缺失
你必须在
?fields=id,status,result你的 GET 请求中包含如果没有此参数,则只返回状态信息
"VM 必须处于运行状态才能发起查询"
NAS 服务 VM 未运行
转到 NAS > NAS Services 并启动该服务
"获取卷 VM 服务时出错:没有这样的文件或目录"
该卷的 NAS 服务不存在或已被删除
验证该卷已关联到有效的 NAS 服务
"未找到资源 '/v4/volume_browser/'"
轮询请求中的任务 ID 为空
确保你提取
$key能从 POST 响应中正确提取
常见错误
使用
路径而不是dir- 该字段名为dir,而不是路径将 params 作为 JSON 字符串发送 - 该
params字段必须是对象,而不是 JSON 编码字符串缺少 params 字段 - 预期包含 params 对象中的所有字段
忘记
?fields=id,status,result- 没有这个,就不会返回文件数据
要求
要浏览卷,NAS 服务 VM 必须正在运行
卷必须在线(已挂载)
用户必须对该卷具有读取权限
其他资源
反馈
最后更新于
这有帮助吗?