接口详情
获取目录列表
| 项目 | 内容 |
|---|---|
| 路径 | GET /fileManage/list |
| 认证 | 需登录,需 CSRF Token |
接口描述:获取指定目录下的文件和文件夹列表,支持分页和排序。
请求参数
Headers
| 参数名称 | 是否必须 | 说明 |
|---|---|---|
| Cookie | 是 | 用户认证所需 |
| X-Csrf-Token | 是 | CSRF 防护令牌 |
Query
| 参数名称 | 是否必须 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| path | 是 | string | 无 | 绝对路径,如 /Volume1/Public |
| page | 否 | integer | 1 | 页码,从 1 开始 |
| limit | 否 | integer | 50 | 每页返回的记录数 |
| rule | 否 | string | 无 | 排序字段:time/size/nature/file_type/owner/del_time/a_time |
| order | 否 | boolean | true | true=降序,false=升序 |
请求示例
curl -X GET "https://{ip}:5443/fileManage/list?path=/Volume1/Public&rule=time&order=true" \
-H "Cookie: userName=admin; TMSESSNAME=abc123; X-Csrf-Token=xyz789" \
-H "X-Csrf-Token: xyz789"
返回示例
{
"code": true,
"code_num": 0,
"code_msg": "",
"data": {
"data": [
{
"name": "Music",
"path": "/Volume1/Public/Music",
"volume": "Volume1",
"f_type": "folder",
"size": 4096,
"size_friendly": "4.0KB",
"owner": "admin",
"permission": "rwxr-xr-x",
"m_time_stamp": 1722155400,
"hidden": false
},
{
"name": "report.pdf",
"path": "/Volume1/Public/report.pdf",
"volume": "Volume1",
"f_type": "file",
"size": 2516582,
"size_friendly": "2.4MB",
"owner": "admin",
"permission": "rw-r--r--",
"m_time_stamp": 1722114900,
"hidden": false
}
],
"total": 2
},
"is_login": true,
"time": 0.047
}
关键字段说明
| 字段 | 说明 |
|---|---|
| f_type | folder=文件夹,file=文件,app_link=应用链接,music=音频,video=视频,image=图片 |
| hidden | true=隐藏文件 |
| total | 总记录数(分页信息) |
获取文件详细信息
| 项目 | 内容 |
|---|---|
| 路径 | GET /fileManage/folderInfoAll |
| 认证 | 需登录,需 CSRF Token |
接口描述:获取文件或文件夹的完整详细信息,含权限、统计信息等。
请求参数
Query
| 参数名称 | 是否必须 | 说明 |
|---|---|---|
| path | 是 | 文件或文件夹绝对路径 |
请求示例
curl -X GET "https://{ip}:5443/fileManage/folderInfoAll?path=/Volume1/Public/Music" \
-H "Cookie: userName=admin; TMSESSNAME=abc123; X-Csrf-Token=xyz789" \
-H "X-Csrf-Token: xyz789"
返回示例
{
"code": true,
"code_num": 0,
"code_msg": "",
"data": {
"name": "Music",
"path": "/Volume1/Public/Music",
"volume": "Volume1",
"f_type": "folder",
"size": 4096,
"owner": "admin",
"permission": "rwxr-xr-x",
"acl_type": 0,
"file_quantity": 150,
"folder_quantity": 12,
"child_folders_info": [
{"name": "Albums", "path": "/Volume1/Public/Music/Albums"}
],
"m_time": "2026-07-28 14:30:00",
"is_only_read": false
},
"is_login": true,
"time": 0.159
}
关键字段说明
| 字段 | 说明 |
|---|---|
| acl_type | 0=普通权限,1=自定义权限 |
| file_quantity | 文件夹下文件总数 |
| folder_quantity | 子文件夹总数 |
| is_only_read | true=只读文件系统 |
创建文件或文件夹
| 项目 | 内容 |
|---|---|
| 路径 | POST /fileManage/CreateFolder |
| 认证 | 需登录,需 CSRF Token |
接口描述:在指定路径创建文件或文件夹。
请求参数
Body(JSON)
| 参数名称 | 是否必须 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| path | 是 | string | 无 | 完整绝对路径 |
| type | 是 | integer | 无 | 1=文件,2=文件夹 |
| back_up | 否 | integer | 0 | 0=不备份,1=备份 |
请求示例
curl -X POST "https://{ip}:5443/fileManage/CreateFolder" \
-H "Content-Type: application/json" \
-H "Cookie: userName=admin; TMSESSNAME=abc123; X-Csrf-Token=xyz789" \
-H "X-Csrf-Token: xyz789" \
-d '{"path":"/Volume1/Public/NewFolder","type":2}'
返回示例
{
"code": true,
"code_num": 0,
"code_msg": "",
"data": {
"name": "NewFolder",
"path": "/Volume1/Public/NewFolder",
"f_type": "folder",
"size": 4096,
"owner": "admin",
"m_time": "2026-08-05 10:00:00"
},
"is_login": true,
"time": 0.052
}
文件重命名
| 项目 | 内容 |
|---|---|
| 路径 | POST /fileManage/folderRename |
| 认证 | 需登录,需 CSRF Token |
接口描述:重命名文件或文件夹。
请求参数
Body(JSON)
| 参数名称 | 是否必须 | 说明 |
|---|---|---|
| path | 是 | 当前绝对路径 |
| r_name | 是 | 新名称(不含路径) |
请求示例
curl -X POST "https://{ip}:5443/fileManage/folderRename" \
-H "Content-Type: application/json" \
-H "Cookie: userName=admin; TMSESSNAME=abc123; X-Csrf-Token=xyz789" \
-H "X-Csrf-Token: xyz789" \
-d '{"path":"/Volume1/Public/OldName","r_name":"NewName"}'
返回示例
{
"code": true,
"code_num": 0,
"code_msg": "",
"data": {
"name": "NewName",
"path": "/Volume1/Public/NewName",
"f_type": "folder",
"m_time": "2026-08-05 10:05:00",
"owner": "admin"
},
"is_login": true,
"time": 0.005
}
移动或复制文件
| 项目 | 内容 |
|---|---|
| 路径 | POST /fileManage/moveFiles |
| 认证 | 需登录,需 CSRF Token |
接口描述:批量移动或复制文件/文件夹到目标目录。
请求参数
Body(JSON)
| 参数名称 | 是否必须 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| paths | 是 | array | 无 | 源文件绝对路径数组 |
| to_path | 是 | string | 无 | 目标目录绝对路径 |
| type | 是 | integer | 无 | 1=复制,2=移动 |
| on_conflict | 否 | integer | 1 | 1=重命名,2=覆盖,3=跳过 |
请求示例
curl -X POST "https://{ip}:5443/fileManage/moveFiles" \
-H "Content-Type: application/json" \
-H "Cookie: userName=admin; TMSESSNAME=abc123; X-Csrf-Token=xyz789" \
-H "X-Csrf-Token: xyz789" \
-d '{"paths":["/Volume1/Public/a.pdf"],"to_path":"/Volume1/Archive","type":2,"on_conflict":1}'
返回示例
{
"code": true,
"code_num": 0,
"code_msg": "",
"data": "task_20260805_100000_abc123",
"is_login": true,
"time": 0.018
}
data为任务 ID(异步任务)或空字符串(同步完成)。
删除文件和文件夹
| 项目 | 内容 |
|---|---|
| 路径 | DELETE /fileManage/folder/del |
| 认证 | 需 Cookie,免 CSRF |
接口描述:批量删除文件或文件夹,支持移入回收站或强制删除。
请求参数
Body(JSON)
| 参数名称 | 是否必须 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| paths | 是 | array | 无 | 要删除的绝对路径数组 |
| is_force | 否 | boolean | false | true=强制删除(不可恢复),false=移入回收站 |
请求示例
curl -X DELETE "https://{ip}:5443/fileManage/folder/del" \
-H "Content-Type: application/json" \
-H "Cookie: userName=admin; TMSESSNAME=abc123" \
-d '{"paths":["/Volume1/Public/a.pdf"],"is_force":false}'
返回示例
{
"code": true,
"code_num": 0,
"code_msg": "",
"data": true,
"is_login": true,
"time": 0.0007
}
data为true表示任务创建成功,false表示失败。
从回收站还原
| 项目 | 内容 |
|---|---|
| 路径 | POST /fileManage/restoreRecycle |
| 认证 | 需登录,需 CSRF Token |
接口描述:从回收站还原已删除文件到原路径。
请求参数
Body(JSON)
| 参数名称 | 是否必须 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| paths | 是 | array | 无 | [{"path":"绝对路径"}] |
| on_conflict | 是 | integer | 无 | 1=重命名,2=覆盖,3=跳过 |
请求示例
curl -X POST "https://{ip}:5443/fileManage/restoreRecycle" \
-H "Content-Type: application/json" \
-H "Cookie: userName=admin; TMSESSNAME=abc123; X-Csrf-Token=xyz789" \
-H "X-Csrf-Token: xyz789" \
-d '{"paths":[{"path":"/Volume1/Public/a.pdf"}],"on_conflict":1}'
返回示例
{
"code": true,
"code_num": 0,
"code_msg": "",
"data": true,
"is_login": true,
"time": 0.0007
}
准备文件下载
| 项目 | 内容 |
|---|---|
| 路径 | POST /fileManage/prepareFileDownload |
| 认证 | 需登录,需 CSRF Token |
接口描述:生成文件下载凭证(ticket),用于后续下载。
请求参数
Body(JSON)
| 参数名称 | 是否必须 | 说明 |
|---|---|---|
| paths | 是 | 文件绝对路径,多个用逗号分隔(不含空格) |
请求示例
curl -X POST "https://{ip}:5443/fileManage/prepareFileDownload" \
-H "Content-Type: application/json" \
-H "Cookie: userName=admin; TMSESSNAME=abc123; X-Csrf-Token=xyz789" \
-H "X-Csrf-Token: xyz789" \
-d '{"paths":"/Volume1/Public/a.pdf"}'
返回示例
{
"code": true,
"code_num": 0,
"code_msg": "",
"data": {
"ticket": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
},
"is_login": true,
"time": 0.071
}
文件上传
| 项目 | 内容 |
|---|---|
| 路径 | POST /fileManage/upload |
| 认证 | 需登录,需 CSRF Token |
| 编码 | multipart/form-data |
接口描述:分块上传文件,支持大文件和批量上传。
请求参数
Headers
| 参数名称 | 是否必须 | 说明 |
|---|---|---|
| Cookie | 是 | 用户认证所需 |
| X-Csrf-Token | 是 | CSRF 防护令牌 |
Form Data
| 参数名称 | 是否必须 | 类型 | 说明 |
|---|---|---|---|
| filename | 是 | string | 文件名 |
| dir | 是 | string | 目标目录绝对路径 |
| file | 是 | file | 当前块二进制数据 |
| task_id | 是 | string | 唯一标识本次上传任务 |
| offset | 是 | integer | 当前块起始位置(字节) |
| block_size | 是 | integer | 块大小(字节) |
| block_hash | 是 | string | 当前块 CRC32 |
| file_hash | 是 | string | 文件 CRC32(末块必填,其他块可填任意值) |
| task_size | 是 | integer | 剩余文件总大小(字节) |
| last_mod_time | 是 | integer | 文件修改时间(Unix 时间戳) |
| is_task_center | 是 | boolean | true=任务中心任务 |
| index | 是 | integer | 文件序号,从 0 开始 |
| upload_operation_type | 是 | integer | 1=重命名,2=覆盖,3=跳过 |
| auto_create_dir | 是 | boolean | true=自动重命名,false=否 |
| folder_path | 否 | string | 上传文件夹时,指定上级目录 |
| folder_counts | 否 | integer | 上传文件夹时,指定文件总数 |
请求示例
curl -X POST "https://{ip}:5443/fileManage/upload" \
-H "Cookie: userName=admin; TMSESSNAME=abc123; X-Csrf-Token=xyz789" \
-H "X-Csrf-Token: xyz789" \
-F "filename=a.txt" \
-F "dir=/Volume1/Public" \
-F "file=@a.txt" \
-F "task_id=123456" \
-F "offset=0" \
-F "block_size=1024" \
-F "block_hash=0ffff" \
-F "file_hash=0ffff" \
-F "task_size=1024" \
-F "last_mod_time=1722780000" \
-F "is_task_center=true" \
-F "index=0" \
-F "upload_operation_type=1" \
-F "auto_create_dir=false"
返回示例
{
"code": true,
"code_num": 0,
"code_msg": "",
"data": true,
"is_login": true,
"time": 0.099
}
data为true表示该块上传成功。