{"id":18760153,"url":"https://github.com/sachinsenal0x64/alist-api","last_synced_at":"2026-02-09T23:04:04.393Z","repository":{"id":193543662,"uuid":"686298454","full_name":"sachinsenal0x64/alist-api","owner":"sachinsenal0x64","description":"📁 Alist V3 API Docs","archived":false,"fork":false,"pushed_at":"2023-09-08T15:42:07.000Z","size":27,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-12T01:29:25.676Z","etag":null,"topics":["alist"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sachinsenal0x64.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-02T10:29:01.000Z","updated_at":"2024-02-14T05:34:52.000Z","dependencies_parsed_at":"2023-09-08T17:25:18.355Z","dependency_job_id":null,"html_url":"https://github.com/sachinsenal0x64/alist-api","commit_stats":null,"previous_names":["sachinsenal0x64/alist-api-docs","sachinsenal0x64/alist-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sachinsenal0x64/alist-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachinsenal0x64%2Falist-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachinsenal0x64%2Falist-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachinsenal0x64%2Falist-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachinsenal0x64%2Falist-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sachinsenal0x64","download_url":"https://codeload.github.com/sachinsenal0x64/alist-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sachinsenal0x64%2Falist-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29284761,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T21:57:15.303Z","status":"ssl_error","status_checked_at":"2026-02-09T21:57:11.537Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alist"],"created_at":"2024-11-07T18:10:01.858Z","updated_at":"2026-02-09T23:04:04.377Z","avatar_url":"https://github.com/sachinsenal0x64.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"---\ntitle: 个人项目 v1.0.0\nlanguage_tabs:\n  - shell: Shell\n  - http: HTTP\n  - javascript: JavaScript\n  - ruby: Ruby\n  - python: Python\n  - php: PHP\n  - java: Java\n  - go: Go\ntoc_footers: []\nincludes: []\nsearch: true\ncode_clipboard: true\nhighlight_theme: darkula\nheadingLevel: 2\ngenerator: \"@tarslib/widdershins v4.0.17\"\n\n---\n\n# 个人项目\n\n\u003e v1.0.0\n\nBase URLs:\n\n# alist/auth\n\n## POST token获取\n\nPOST /api/auth/login\n\n获取某个用户的临时JWt token\n\n\u003e Body 请求参数\n\n```json\n{\n  \"username\": \"{{alist_username}}\",\n  \"password\": \"{{alist_password}}\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|body|body|object| 否 ||none|\n|» username|body|string| 是 | 用户名|用户名|\n|» password|body|string| 是 | 密码|密码|\n|» otp_code|body|string| 是 | 二步验证码|二步验证码|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"token\": \"abcd\"\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none||状态码|\n|» message|string|true|none||信息|\n|» data|object|true|none||data|\n|»» token|string|true|none||token|\n\n## POST token获取hash\n\nPOST /api/auth/login/hash\n\n获取某个用户的临时JWt token，传入的密码需要在添加-https://github.com/alist-org/alist后缀后再进行sha256\n\n\u003e Body 请求参数\n\n```json\n{\n  \"username\": \"{{alist_username}}\",\n  \"password\": \"{{alist_password}}\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|body|body|object| 否 ||none|\n|» username|body|string| 是 | 用户名|用户名|\n|» password|body|string| 是 | 密码|hash后密码，获取方式为`sha256(密码-https://github.com/alist-org/alist)`|\n|» otp_code|body|string| 是 | 二步验证码|二步验证码|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"token\": \"abcd\"\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none||状态码|\n|» message|string|true|none||信息|\n|» data|object|true|none||data|\n|»» token|string|true|none||token|\n\n## POST 生成2FA密钥\n\nPOST /api/auth/2fa/generate\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"qr\": \"data:image/png;base64,iVBORw0KGgoAAAANSUhE\",\n    \"secret\": \"RPQZG4MDS3\"\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none|数据|none|\n|»» qr|string|true|none|二维码|二维码图片的data url|\n|»» secret|string|true|none|密钥|none|\n\n## POST 验证2FA code\n\nPOST /api/auth/2fa/verify\n\n\u003e Body 请求参数\n\n```json\n{\n  \"code\": \"string\",\n  \"secret\": \"string\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» code|body|string| 是 | 2FA验证码|none|\n|» secret|body|string| 是 | 2FA密钥|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## GET 获取当前用户信息\n\nGET /api/me\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 否 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"id\": 1,\n    \"username\": \"admin\",\n    \"Salt\": \"EV1R\",\n    \"password\": \"\",\n    \"base_path\": \"/\",\n    \"role\": 2,\n    \"disabled\": false,\n    \"permission\": 0,\n    \"sso_id\": \"\",\n    \"otp\": true\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none|数据|none|\n|»» id|integer|true|none|id|none|\n|»» username|string|true|none|用户名|none|\n|»» Salt|string|true|none|salt|none|\n|»» password|string|true|none|密码|none|\n|»» base_path|string|true|none|根目录|none|\n|»» role|integer|true|none|角色|none|\n|»» disabled|boolean|true|none|是否禁用|none|\n|»» permission|integer|true|none|权限|none|\n|»» sso_id|string|true|none|sso id|none|\n|»» otp|boolean|true|none|是否开启二步验证|none|\n\n# alist/fs\n\n## POST 新建文件夹\n\nPOST /api/fs/mkdir\n\n\u003e Body 请求参数\n\n```json\n{\n  \"path\": \"/tt\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||token|\n|Content-Type|header|string| 否 ||none|\n|body|body|object| 否 ||none|\n|» path|body|string| 是 | 新目录路径|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 重命名文件\n\nPOST /api/fs/rename\n\n\u003e Body 请求参数\n\n```json\n{\n  \"name\": \"test3\",\n  \"path\": \"/阿里云盘/test2\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||token|\n|Content-Type|header|string| 否 ||none|\n|body|body|object| 否 ||none|\n|» name|body|string| 是 | 目标文件名，不支持'/'|none|\n|» path|body|string| 是 | 源文件名|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## PUT 表单上传文件\n\nPUT /api/fs/form\n\n\u003e Body 请求参数\n\n```yaml\nfile: []\n\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||token|\n|Content-Type|header|string| 是 ||需要是multipart/form-data;|\n|Content-Length|header|string| 是 ||文件大小|\n|File-Path|header|string| 是 ||经过URL编码的完整文件路径|\n|As-Task|header|string| 否 ||是否添加为任务|\n|body|body|object| 否 ||none|\n|» file|body|string(binary)| 是 ||文件|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 列出文件目录\n\nPOST /api/fs/list\n\n\u003e Body 请求参数\n\n```json\n{\n  \"path\": \"/t\",\n  \"password\": \"\",\n  \"page\": 1,\n  \"per_page\": 0,\n  \"refresh\": false\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» path|body|string| 否 | 路径|none|\n|» password|body|string| 否 | 密码|none|\n|» page|body|integer| 否 | 页数|none|\n|» per_page|body|integer| 否 | 每页数目|none|\n|» refresh|body|boolean| 否 | 是否强制刷新|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"content\": [\n      {\n        \"name\": \"m\",\n        \"size\": 0,\n        \"is_dir\": true,\n        \"modified\": \"2023-07-19T09:48:13.695585868+08:00\",\n        \"sign\": \"\",\n        \"thumb\": \"\",\n        \"type\": 1\n      }\n    ],\n    \"total\": 1,\n    \"readme\": \"\",\n    \"write\": true,\n    \"provider\": \"unknown\"\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none||none|\n|»» content|[object]|true|none|内容|none|\n|»»» name|string|true|none|文件名|none|\n|»»» size|integer|true|none|大小|none|\n|»»» is_dir|boolean|true|none|是否是文件夹|none|\n|»»» modified|string|true|none|修改时间|none|\n|»»» sign|string|true|none|签名|none|\n|»»» thumb|string|true|none|缩略图|none|\n|»»» type|integer|true|none|类型|none|\n|»» total|integer|true|none|总数|none|\n|»» readme|string|true|none|说明|none|\n|»» write|boolean|true|none|是否可写入|none|\n|»» provider|string|true|none||none|\n\n## POST 获取某个文件/目录信息\n\nPOST /api/fs/get\n\n\u003e Body 请求参数\n\n```json\n{\n  \"path\": \"/t\",\n  \"password\": \"\",\n  \"page\": 1,\n  \"per_page\": 0,\n  \"refresh\": false\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» path|body|string| 否 | 路径|none|\n|» password|body|string| 否 | 密码|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"name\": \"root\",\n    \"size\": 0,\n    \"is_dir\": true,\n    \"modified\": \"0001-01-01T00:00:00Z\",\n    \"sign\": \"\",\n    \"thumb\": \"\",\n    \"type\": 0,\n    \"raw_url\": \"\",\n    \"readme\": \"\",\n    \"provider\": \"unknown\",\n    \"related\": null\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none||none|\n|»» name|string|true|none|文件名|none|\n|»» size|integer|true|none|大小|none|\n|»» is_dir|boolean|true|none|是否是文件夹|none|\n|»» modified|string|true|none|修改时间|none|\n|»» sign|string|true|none|签名|none|\n|»» thumb|string|true|none|缩略图|none|\n|»» type|integer|true|none|类型|none|\n|»» raw_url|string|true|none|原始url|none|\n|»» readme|string|true|none|说明|none|\n|»» provider|string|true|none||none|\n|»» related|null|true|none||none|\n\n## POST 搜索文件或文件夹\n\nPOST /api/fs/search\n\n\u003e Body 请求参数\n\n```json\n{\n  \"parent\": \"string\",\n  \"keywords\": \"string\",\n  \"scope\": 0,\n  \"page\": 0,\n  \"per_page\": 0,\n  \"password\": \"string\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» parent|body|string| 是 | 搜索目录|none|\n|» keywords|body|string| 是 | 关键词|none|\n|» scope|body|integer| 是 | 搜索类型|0-全部 1-文件夹 2-文件|\n|» page|body|integer| 是 | 页数|none|\n|» per_page|body|integer| 是 | 每页数目|none|\n|» password|body|string| 是 | 密码|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"content\": [\n      {\n        \"parent\": \"/m\",\n        \"name\": \"4305da1e\",\n        \"is_dir\": false,\n        \"size\": 393090,\n        \"type\": 0\n      }\n    ],\n    \"total\": 1\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none||none|\n|»» content|[object]|true|none||none|\n|»»» parent|string|true|none|路径|none|\n|»»» name|string|true|none|文件名|none|\n|»»» is_dir|boolean|true|none|是否是文件夹|none|\n|»»» size|integer|true|none|大小|none|\n|»»» type|integer|true|none|类型|none|\n|»» total|integer|true|none|总数|none|\n\n## POST 获取目录\n\nPOST /api/fs/dirs\n\n\u003e Body 请求参数\n\n```json\n{\n  \"path\": \"/t\",\n  \"password\": \"\",\n  \"page\": 1,\n  \"per_page\": 0,\n  \"refresh\": false\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» path|body|string| 否 | 路径|none|\n|» password|body|string| 否 | 密码|none|\n|» force_root|body|boolean| 否 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": [\n    {\n      \"name\": \"a\",\n      \"modified\": \"2023-07-19T09:48:13.695585868+08:00\"\n    }\n  ]\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|[object]|true|none||none|\n|»» name|string|true|none|文件名|none|\n|»» modified|string|true|none|修改时间|none|\n\n## POST 批量重命名\n\nPOST /api/fs/batch_rename\n\n\u003e Body 请求参数\n\n```json\n{\n  \"src_dir\": \"/m2\",\n  \"rename_objects\": [\n    {\n      \"src_name\": \"test.txt\",\n      \"new_name\": \"aaas2.txt\"\n    }\n  ]\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||token|\n|Content-Type|header|string| 否 ||none|\n|body|body|object| 否 ||none|\n|» src_dir|body|string| 是 | 源目录|none|\n|» rename_objects|body|[object]| 是 ||none|\n|»» src_name|body|string| 否 | 原文件名|none|\n|»» new_name|body|string| 否 | 新文件名|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|状态码|\n|» message|string|true|none|信息|信息|\n|» data|null|true|none||none|\n\n## POST 正则重命名\n\nPOST /api/fs/regex_rename\n\n\u003e Body 请求参数\n\n```json\n{\n  \"src_dir\": \"/m2\",\n  \"rename_objects\": [\n    {\n      \"src_name\": \"test.txt\",\n      \"new_name\": \"aaas2.txt\"\n    }\n  ]\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||token|\n|Content-Type|header|string| 否 ||none|\n|body|body|object| 否 ||none|\n|» src_dir|body|string| 是 | 源目录|none|\n|» src_name_regex|body|string| 是 | 源文件匹配正则|none|\n|» new_name_regex|body|string| 是 | 新文件名正则|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|状态码|\n|» message|string|true|none|信息|信息|\n|» data|null|true|none||none|\n\n## POST 移动文件\n\nPOST /api/fs/move\n\n\u003e Body 请求参数\n\n```json\n{\n  \"src_dir\": \"string\",\n  \"dst_dir\": \"string\",\n  \"names\": [\n    \"string\"\n  ]\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» src_dir|body|string| 是 | 源文件夹|none|\n|» dst_dir|body|string| 是 | 目标文件夹|none|\n|» names|body|[string]| 是 | 文件名|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 聚合移动\n\nPOST /api/fs/recursive_move\n\n\u003e Body 请求参数\n\n```json\n{\n  \"src_dir\": \"string\",\n  \"dst_dir\": \"string\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» src_dir|body|string| 是 | 源文件夹|none|\n|» dst_dir|body|string| 是 | 目标文件夹|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 复制文件\n\nPOST /api/fs/copy\n\n\u003e Body 请求参数\n\n```json\n{\n  \"src_dir\": \"string\",\n  \"dst_dir\": \"string\",\n  \"names\": [\n    \"string\"\n  ]\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» src_dir|body|string| 是 | 源文件夹|none|\n|» dst_dir|body|string| 是 | 目标文件夹|none|\n|» names|body|[string]| 是 | 文件名|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 删除文件或文件夹\n\nPOST /api/fs/remove\n\n\u003e Body 请求参数\n\n```json\n{\n  \"names\": [\n    \"string\"\n  ],\n  \"dir\": \"string\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» names|body|[string]| 是 | 文件名|none|\n|» dir|body|string| 是 | 目录|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 删除空文件夹\n\nPOST /api/fs/remove_empty_directory\n\n\u003e Body 请求参数\n\n```json\n{\n  \"src_dir\": \"string\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» src_dir|body|string| 是 | 目录|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## PUT 流式上传文件\n\nPUT /api/fs/put\n\n\u003e Body 请求参数\n\n```yaml\nstring\n\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|File-Path|header|string| 是 ||经过URL编码的完整目标文件路径|\n|As-Task|header|string| 否 ||是否添加为任务|\n|Content-Type|header|string| 是 ||none|\n|Content-Length|header|string| 是 ||none|\n|body|body|string(binary)| 否 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 添加aria2下载\n\nPOST /api/fs/add_aria2\n\n\u003e Body 请求参数\n\n```json\n{\n  \"urls\": [\n    \"string\"\n  ],\n  \"path\": \"string\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» urls|body|[string]| 是 | url|none|\n|» path|body|string| 是 | 目标路径|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 添加qBittorrent下载\n\nPOST /api/fs/add_qbit\n\n\u003e Body 请求参数\n\n```json\n{\n  \"urls\": [\n    \"string\"\n  ],\n  \"path\": \"string\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» urls|body|[string]| 是 | url|none|\n|» path|body|string| 是 | 目标路径|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n# alist/public\n\n## GET ping检测\n\nGET /ping\n\n连通性ping检测\n\n\u003e 返回示例\n\n\u003e 成功\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n## GET 获取站点设置\n\nGET /api/public/settings\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"allow_indexed\": \"false\",\n    \"allow_mounted\": \"false\",\n    \"announcement\": \"\",\n    \"audio_autoplay\": \"true\",\n    \"audio_cover\": \"https://jsd.nn.ci/gh/alist-org/logo@main/logo.svg\",\n    \"auto_update_index\": \"false\",\n    \"default_page_size\": \"30\",\n    \"external_previews\": \"{}\",\n    \"favicon\": \"https://cdn.jsdelivr.net/gh/alist-org/logo@main/logo.svg\",\n    \"filename_char_mapping\": \"{\\\"/\\\": \\\"|\\\"}\",\n    \"forward_direct_link_params\": \"false\",\n    \"hide_files\": \"/\\\\/README.md/i\",\n    \"home_container\": \"hope_container\",\n    \"home_icon\": \"🏠\",\n    \"iframe_previews\": \"{\\n\\t\\\"doc,docx,xls,xlsx,ppt,pptx\\\": {\\n\\t\\t\\\"Microsoft\\\":\\\"https://view.officeapps.live.com/op/view.aspx?src=$e_url\\\",\\n\\t\\t\\\"Google\\\":\\\"https://docs.google.com/gview?url=$e_url\u0026embedded=true\\\"\\n\\t},\\n\\t\\\"pdf\\\": {\\n\\t\\t\\\"PDF.js\\\":\\\"https://alist-org.github.io/pdf.js/web/viewer.html?file=$e_url\\\"\\n\\t},\\n\\t\\\"epub\\\": {\\n\\t\\t\\\"EPUB.js\\\":\\\"https://alist-org.github.io/static/epub.js/viewer.html?url=$e_url\\\"\\n\\t}\\n}\",\n    \"logo\": \"https://cdn.jsdelivr.net/gh/alist-org/logo@main/logo.svg\",\n    \"main_color\": \"#1890ff\",\n    \"ocr_api\": \"https://api.nn.ci/ocr/file/json\",\n    \"package_download\": \"true\",\n    \"pagination_type\": \"all\",\n    \"robots_txt\": \"User-agent: *\\nAllow: /\",\n    \"search_index\": \"none\",\n    \"settings_layout\": \"responsive\",\n    \"site_title\": \"AList\",\n    \"sso_login_enabled\": \"false\",\n    \"sso_login_platform\": \"\",\n    \"version\": \"v3.25.1\",\n    \"video_autoplay\": \"true\"\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none|数据|none|\n|»» allow_indexed|string|true|none|允许索引|none|\n|»» allow_mounted|string|true|none|允许挂载|none|\n|»» announcement|string|true|none|公告|none|\n|»» audio_autoplay|string|true|none|自动播放音频|none|\n|»» audio_cover|string|true|none|音频封面|none|\n|»» auto_update_index|string|true|none|自动更新索引|none|\n|»» default_page_size|string|true|none|默认分页数|none|\n|»» external_previews|string|true|none|外部预览|none|\n|»» favicon|string|true|none|网站图标|none|\n|»» filename_char_mapping|string|true|none||none|\n|»» forward_direct_link_params|string|true|none||none|\n|»» hide_files|string|true|none|隐藏文件|none|\n|»» home_container|string|true|none|主页容器|none|\n|»» home_icon|string|true|none|主页图标|none|\n|»» iframe_previews|string|true|none|iframe预览设置|none|\n|»» logo|string|true|none|logo|none|\n|»» main_color|string|true|none|主题颜色|none|\n|»» ocr_api|string|true|none|pcr接口|none|\n|»» package_download|string|true|none|打包下载|none|\n|»» pagination_type|string|true|none||none|\n|»» robots_txt|string|true|none|robots文件|none|\n|»» search_index|string|true|none||none|\n|»» settings_layout|string|true|none||none|\n|»» site_title|string|true|none|站点标题|none|\n|»» sso_login_enabled|string|true|none|启用sso登录|none|\n|»» sso_login_platform|string|true|none|sso登录平台|none|\n|»» version|string|true|none|版本|none|\n|»» video_autoplay|string|true|none|视频自动播放|none|\n\n# alist/admin/meta\n\n## GET 列出元信息\n\nGET /api/admin/meta/list\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|page|query|string| 否 ||页数|\n|per_page|query|string| 否 ||每页个数|\n|Authorization|header|string| 是 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"content\": [\n      {\n        \"id\": 1,\n        \"path\": \"/a\",\n        \"password\": \"i\",\n        \"p_sub\": false,\n        \"write\": false,\n        \"w_sub\": false,\n        \"hide\": \"\",\n        \"h_sub\": false,\n        \"readme\": \"\",\n        \"r_sub\": false\n      }\n    ],\n    \"total\": 1\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none|数据|none|\n|»» content|[object]|true|none|内容|none|\n|»»» id|integer|false|none|id|none|\n|»»» path|string|false|none|路径|none|\n|»»» password|string|false|none|密码|none|\n|»»» p_sub|boolean|false|none|密码是否应用到子文件夹|none|\n|»»» write|boolean|false|none|是否允许写入|none|\n|»»» w_sub|boolean|false|none|是否允许写入引用到子文件夹|none|\n|»»» hide|string|false|none|隐藏|none|\n|»»» h_sub|boolean|false|none|隐藏是否应用到子文件夹|none|\n|»»» readme|string|false|none|说明|none|\n|»»» r_sub|boolean|false|none|说明是否应用到子文件夹|none|\n|»» total|integer|true|none|总数|none|\n\n## GET 获取元信息\n\nGET /api/admin/meta/get\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|id|query|string| 是 ||元信息id|\n|Authorization|header|string| 是 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"id\": 1,\n    \"path\": \"/a\",\n    \"password\": \"c\",\n    \"p_sub\": false,\n    \"write\": false,\n    \"w_sub\": false,\n    \"hide\": \"\",\n    \"h_sub\": false,\n    \"readme\": \"\",\n    \"r_sub\": false\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none||none|\n|»» id|integer|true|none|id|none|\n|»» path|string|true|none|路径|none|\n|»» password|string|true|none|密码|none|\n|»» p_sub|boolean|true|none|密码是否应用到子文件夹|none|\n|»» write|boolean|true|none|开启写入|none|\n|»» w_sub|boolean|true|none|开启写入是否应用到子文件夹|none|\n|»» hide|string|true|none|隐藏|none|\n|»» h_sub|boolean|true|none|隐藏是否应用到子文件夹|none|\n|»» readme|string|true|none|说明|none|\n|»» r_sub|boolean|true|none|说明是否应用到子文件夹|none|\n\n## POST 新增元信息\n\nPOST /api/admin/meta/create\n\n\u003e Body 请求参数\n\n```json\n{\n  \"id\": 0,\n  \"path\": \"/a\",\n  \"password\": \"c\",\n  \"p_sub\": false,\n  \"write\": false,\n  \"w_sub\": false,\n  \"hide\": \"\",\n  \"h_sub\": false,\n  \"readme\": \"\",\n  \"r_sub\": false\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» id|body|integer| 是 | id|none|\n|» path|body|string| 是 | 路径|none|\n|» password|body|string| 是 | 密码|none|\n|» p_sub|body|boolean| 是 | 密码是否应用到子文件夹|none|\n|» write|body|boolean| 是 | 开启写入|none|\n|» w_sub|body|boolean| 是 | 开启写入是否应用到子文件夹|none|\n|» hide|body|string| 是 | 隐藏|none|\n|» h_sub|body|boolean| 是 | 隐藏是否应用到子文件夹|none|\n|» readme|body|string| 是 | 说明|none|\n|» r_sub|body|boolean| 是 | 说明是否应用到子文件夹|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none||none|\n|» message|string|true|none||none|\n|» data|null|true|none||none|\n\n## POST 更新元信息\n\nPOST /api/admin/meta/update\n\n\u003e Body 请求参数\n\n```json\n{\n  \"id\": 0,\n  \"path\": \"/a\",\n  \"password\": \"c\",\n  \"p_sub\": false,\n  \"write\": false,\n  \"w_sub\": false,\n  \"hide\": \"\",\n  \"h_sub\": false,\n  \"readme\": \"\",\n  \"r_sub\": false\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» id|body|integer| 是 | id|none|\n|» path|body|string| 是 | 路径|none|\n|» password|body|string| 是 | 密码|none|\n|» p_sub|body|boolean| 是 | 密码是否应用到子文件夹|none|\n|» write|body|boolean| 是 | 开启写入|none|\n|» w_sub|body|boolean| 是 | 开启写入是否应用到子文件夹|none|\n|» hide|body|string| 是 | 隐藏|none|\n|» h_sub|body|boolean| 是 | 隐藏是否应用到子文件夹|none|\n|» readme|body|string| 是 | 说明|none|\n|» r_sub|body|boolean| 是 | 说明是否应用到子文件夹|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none||none|\n|» message|string|true|none||none|\n|» data|null|true|none||none|\n\n## POST 删除元信息\n\nPOST /api/admin/meta/delete\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|id|query|string| 是 ||none|\n|Authorization|header|string| 是 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n# alist/admin/user\n\n## GET 列出所有用户\n\nGET /api/admin/user/list\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"content\": [\n      {\n        \"id\": 1,\n        \"username\": \"admin\",\n        \"Salt\": \"W\",\n        \"password\": \"\",\n        \"base_path\": \"/\",\n        \"role\": 2,\n        \"disabled\": false,\n        \"permission\": 0,\n        \"sso_id\": \"\"\n      },\n      {\n        \"id\": 2,\n        \"username\": \"guest\",\n        \"Salt\": \"M\",\n        \"password\": \"\",\n        \"base_path\": \"/\",\n        \"role\": 1,\n        \"disabled\": true,\n        \"permission\": 0,\n        \"sso_id\": \"\"\n      },\n      {\n        \"id\": 3,\n        \"username\": \"N\",\n        \"Salt\": \"L\",\n        \"password\": \"\",\n        \"base_path\": \"/\",\n        \"role\": 0,\n        \"disabled\": false,\n        \"permission\": 256,\n        \"sso_id\": \"\"\n      }\n    ],\n    \"total\": 3\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none||none|\n|»» content|[object]|true|none||none|\n|»»» id|integer|true|none|id|none|\n|»»» username|string|true|none|用户名|none|\n|»»» Salt|string|true|none|salt|none|\n|»»» password|string|true|none|密码|none|\n|»»» base_path|string|true|none|基本路径|none|\n|»»» role|integer|true|none|角色|none|\n|»»» disabled|boolean|true|none|是否禁用|none|\n|»»» permission|integer|true|none|权限|none|\n|»»» sso_id|string|true|none|sso id|none|\n|»» total|integer|true|none|总数|none|\n\n## GET 列出某个用户\n\nGET /api/admin/user/get\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|id|query|string| 是 ||none|\n|Authorization|header|string| 是 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"id\": 1,\n    \"username\": \"admin\",\n    \"Salt\": \"s\",\n    \"password\": \"\",\n    \"base_path\": \"/\",\n    \"role\": 2,\n    \"disabled\": false,\n    \"permission\": 0,\n    \"sso_id\": \"\"\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none||none|\n|»» content|[object]|true|none||none|\n|»»» id|integer|true|none|id|none|\n|»»» username|string|true|none|用户名|none|\n|»»» Salt|string|true|none|salt|none|\n|»»» password|string|true|none|密码|none|\n|»»» base_path|string|true|none|基本路径|none|\n|»»» role|integer|true|none|角色|none|\n|»»» disabled|boolean|true|none|是否禁用|none|\n|»»» permission|integer|true|none|权限|none|\n|»»» sso_id|string|true|none|sso id|none|\n|»» total|integer|true|none|总数|none|\n\n## POST 新建用户\n\nPOST /api/admin/user/create\n\n\u003e Body 请求参数\n\n```json\n{\n  \"id\": 0,\n  \"username\": \"a\",\n  \"password\": \"123456\",\n  \"base_path\": \"/\",\n  \"role\": 0,\n  \"permission\": 60,\n  \"disabled\": false,\n  \"sso_id\": \"\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» id|body|integer| 否 | id|none|\n|» username|body|string| 是 | 用户名|none|\n|» password|body|string| 否 | 密码|none|\n|» base_path|body|string| 否 | 基本路径|none|\n|» role|body|integer| 否 | 角色|none|\n|» permission|body|integer| 否 | 权限|none|\n|» disabled|body|boolean| 否 | 是否禁用|none|\n|» sso_id|body|string| 否 | sso id|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 更新用户信息\n\nPOST /api/admin/user/update\n\n\u003e Body 请求参数\n\n```json\n{\n  \"id\": 0,\n  \"username\": \"a\",\n  \"password\": \"123456\",\n  \"base_path\": \"/\",\n  \"role\": 0,\n  \"permission\": 60,\n  \"disabled\": false,\n  \"sso_id\": \"\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n|body|body|object| 否 ||none|\n|» id|body|integer| 是 | id|none|\n|» username|body|string| 是 | 用户名|none|\n|» password|body|string| 否 | 密码|none|\n|» base_path|body|string| 否 | 基本路径|none|\n|» role|body|integer| 否 | 角色|none|\n|» permission|body|integer| 否 | 权限|none|\n|» disabled|body|boolean| 否 | 是否禁用|none|\n|» sso_id|body|string| 否 | sso id|none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 取消某个用户的两步验证\n\nPOST /api/admin/user/cancel_2fa\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|id|query|string| 是 ||none|\n|Authorization|header|string| 是 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 删除用户\n\nPOST /api/admin/user/delete\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|id|query|string| 是 ||none|\n|Authorization|header|string| 否 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n## POST 删除用户缓存\n\nPOST /api/admin/user/del_cache\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|username|query|string| 是 ||none|\n|Authorization|header|string| 否 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n# alist/admin/storage\n\n## GET 列出存储列表\n\nGET /api/admin/storage/list\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|page|query|string| 否 ||页数|\n|per_page|query|string| 否 ||每页数目|\n|Authorization|header|string| 是 ||token|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"content\": [\n      {\n        \"id\": 1,\n        \"mount_path\": \"/lll\",\n        \"order\": 0,\n        \"driver\": \"Local\",\n        \"cache_expiration\": 0,\n        \"status\": \"work\",\n        \"addition\": \"{\\\"root_folder_path\\\":\\\"/root/www\\\",\\\"thumbnail\\\":false,\\\"thumb_cache_folder\\\":\\\"\\\",\\\"show_hidden\\\":true,\\\"mkdir_perm\\\":\\\"777\\\"}\",\n        \"remark\": \"\",\n        \"modified\": \"2023-07-19T09:46:38.868739912+08:00\",\n        \"disabled\": false,\n        \"enable_sign\": false,\n        \"order_by\": \"name\",\n        \"order_direction\": \"asc\",\n        \"extract_folder\": \"front\",\n        \"web_proxy\": false,\n        \"webdav_policy\": \"native_proxy\",\n        \"down_proxy_url\": \"\"\n      }\n    ],\n    \"total\": 5\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|状态码|\n|» message|string|true|none|信息|信息|\n|» data|object|true|none||none|\n|»» content|[object]|true|none||none|\n|»»» id|integer|false|none|id|id|\n|»»» mount_path|string|false|none|挂载路径|挂载路径|\n|»»» order|integer|false|none|排序|顺序|\n|»»» driver|string|false|none|驱动|驱动类型|\n|»»» cache_expiration|integer|false|none|缓存过期时间|缓存时间|\n|»»» status|string|false|none|状态|状态|\n|»»» addition|string|false|none|额外信息|额外信息|\n|»»» remark|string|false|none|备注|备注名|\n|»»» modified|string|false|none|修改时间|修改时间|\n|»»» disabled|boolean|false|none|禁用|是否被禁用|\n|»»» enable_sign|boolean|false|none|启用签名|none|\n|»»» order_by|string|false|none|排序|排序方式|\n|»»» order_direction|string|false|none|排序方向|排序方向|\n|»»» extract_folder|string|false|none|提取文件夹|提取目录顺序|\n|»»» web_proxy|boolean|false|none|web代理|http代理|\n|»»» webdav_policy|string|false|none|webdav代理|webdav策略|\n|»»» down_proxy_url|string|false|none|下载代理url|下载代理url|\n|»» total|integer|true|none|总数|none|\n\n## POST 启用存储\n\nPOST /api/admin/storage/enable\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|id|query|integer| 是 ||存储id|\n|Authorization|header|string| 是 ||token|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|状态码|\n|» message|string|true|none|信息|信息|\n|» data|null|true|none|data|data|\n\n## POST 禁用存储\n\nPOST /api/admin/storage/disable\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|id|query|string| 是 ||存储id|\n|Authorization|header|string| 是 ||token|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|状态码|\n|» message|string|true|none|信息|信息|\n|» data|null|true|none|data|data|\n\n## POST 更新存储\n\nPOST /api/admin/storage/create\n\n\u003e Body 请求参数\n\n```json\n{\n  \"mount_path\": \"/lll\",\n  \"order\": 0,\n  \"remark\": \"\",\n  \"cache_expiration\": 30,\n  \"web_proxy\": false,\n  \"webdav_policy\": \"native_proxy\",\n  \"down_proxy_url\": \"\",\n  \"extract_folder\": \"front\",\n  \"enable_sign\": false,\n  \"driver\": \"Local\",\n  \"order_by\": \"name\",\n  \"order_direction\": \"asc\",\n  \"addition\": \"{\\\"root_folder_path\\\":\\\"/\\\",\\\"thumbnail\\\":false,\\\"thumb_cache_folder\\\":\\\"\\\",\\\"show_hidden\\\":true,\\\"mkdir_perm\\\":\\\"777\\\"}\"\n}\n```\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||token|\n|body|body|object| 否 ||none|\n|» mount_path|body|string| 是 | 挂载路径|挂载路径|\n|» order|body|integer| 是 | 排序|排序|\n|» remark|body|string| 是 | 备注名|备注名|\n|» cache_expiration|body|integer| 是 | 缓存过期时间|缓存过期时间|\n|» web_proxy|body|boolean| 是 | web代理|web代理|\n|» webdav_policy|body|string| 是 | webdav策略|webdav策略|\n|» down_proxy_url|body|string| 是 | 下载代理|下载代理|\n|» extract_folder|body|string| 是 | 提取目录|提取目录|\n|» driver|body|string| 是 | 驱动|驱动|\n|» addition|body|string| 是 | 额外信息|额外信息|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"id\": 7\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|状态码|\n|» message|string|true|none|信息|信息|\n|» data|object|true|none|data|data|\n|»» id|integer|true|none||none|\n\n## GET 查询指定存储信息\n\nGET /api/admin/storage/get\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|id|query|string| 是 ||存储id|\n|Authorization|header|string| 是 ||token|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"id\": 2,\n    \"mount_path\": \"/aa\",\n    \"order\": 1,\n    \"driver\": \"Aliyundrive\",\n    \"cache_expiration\": 30,\n    \"status\": \"work\",\n    \"addition\": \"{\\\"root_folder_id\\\":\\\"\\\",\\\"refresh_token\\\":\\\"\\\",\\\"order_by\\\":\\\"size\\\",\\\"order_direction\\\":\\\"ASC\\\",\\\"rapid_upload\\\":false}\",\n    \"remark\": \"\",\n    \"modified\": \"2022-11-26T21:50:44.142348853+08:00\",\n    \"disabled\": false,\n    \"order_by\": \"\",\n    \"order_direction\": \"\",\n    \"extract_folder\": \"front\",\n    \"web_proxy\": false,\n    \"webdav_policy\": \"302_redirect\",\n    \"down_proxy_url\": \"\"\n  }\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|object|true|none||none|\n|»» id|integer|true|none|id|none|\n|»» mount_path|string|true|none|挂载路径|none|\n|»» order|integer|true|none|排序|none|\n|»» driver|string|true|none|驱动|none|\n|»» cache_expiration|integer|true|none|缓存过期时间|none|\n|»» status|string|true|none|状态|none|\n|»» addition|string|true|none|额外信息|none|\n|»» remark|string|true|none|备注|none|\n|»» modified|string|true|none|修改时间|none|\n|»» disabled|boolean|true|none|是否被禁用|none|\n|»» order_by|string|true|none|排序方式|none|\n|»» order_direction|string|true|none|排序方向|none|\n|»» extract_folder|string|true|none|提取目录|none|\n|»» web_proxy|boolean|true|none|web代理|none|\n|»» webdav_policy|string|true|none|webdav策略|none|\n|»» down_proxy_url|string|true|none|下载代理|none|\n\n## POST 删除指定存储\n\nPOST /api/admin/storage/delete\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|id|query|string| 否 ||存储id|\n|Authorization|header|string| 是 ||token|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|状态码|\n|» message|string|true|none|信息|信息|\n|» data|null|true|none|data|data|\n\n## POST 重新加载所有存储\n\nPOST /api/admin/storage/load_all\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||none|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": null\n}\n```\n\n### 返回结果\n\n|状态码|状态码含义|说明|数据模型|\n|---|---|---|---|\n|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|\n\n### 返回数据结构\n\n状态码 **200**\n\n|名称|类型|必选|约束|中文名|说明|\n|---|---|---|---|---|---|\n|» code|integer|true|none|状态码|none|\n|» message|string|true|none|信息|none|\n|» data|null|true|none||none|\n\n# alist/admin/driver\n\n## GET 查询所有驱动配置模板列表\n\nGET /api/admin/driver/list\n\n### 请求参数\n\n|名称|位置|类型|必选|中文名|说明|\n|---|---|---|---|---|---|\n|Authorization|header|string| 是 ||token|\n\n\u003e 返回示例\n\n\u003e 成功\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"115 Cloud\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"native_proxy\",\n          \"options\": \"use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"cookie\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"one of QR code token and cookie required\"\n        },\n        {\n          \"name\": \"qrcode_token\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"one of QR code token and cookie required\"\n        },\n        {\n          \"name\": \"page_size\",\n          \"type\": \"number\",\n          \"default\": \"56\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"list api per page size of 115 driver\"\n        },\n        {\n          \"name\": \"root_folder_id\",\n          \"type\": \"string\",\n          \"default\": \"0\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"115 Cloud\",\n        \"local_sort\": false,\n        \"only_local\": true,\n        \"only_proxy\": true,\n        \"no_cache\": false,\n        \"no_upload\": false,\n        \"need_ms\": false,\n        \"default_root\": \"0\",\n        \"alert\": \"\"\n      }\n    },\n    \"123Pan\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"username\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"password\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"root_folder_id\",\n          \"type\": \"string\",\n          \"default\": \"0\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"file_name\",\n          \"options\": \"file_name,size,update_at\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"asc\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"123Pan\",\n        \"local_sort\": false,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": false,\n        \"need_ms\": false,\n        \"default_root\": \"0\",\n        \"alert\": \"\"\n      }\n    },\n    \"123PanShare\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"name,size,modified\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"sharekey\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"sharepassword\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"root_folder_id\",\n          \"type\": \"string\",\n          \"default\": \"0\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"file_name\",\n          \"options\": \"file_name,size,update_at\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"asc\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"123PanShare\",\n        \"local_sort\": true,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": true,\n        \"need_ms\": false,\n        \"default_root\": \"0\",\n        \"alert\": \"\"\n      }\n    },\n    \"139Yun\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"name,size,modified\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"authorization\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"root_folder_id\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"type\",\n          \"type\": \"select\",\n          \"default\": \"personal\",\n          \"options\": \"personal,family\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cloud_id\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"139Yun\",\n        \"local_sort\": true,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": false,\n        \"need_ms\": false,\n        \"default_root\": \"\",\n        \"alert\": \"\"\n      }\n    },\n    \"189Cloud\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"name,size,modified\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"username\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"password\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cookie\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"Fill in the cookie if need captcha\"\n        },\n        {\n          \"name\": \"root_folder_id\",\n          \"type\": \"string\",\n          \"default\": \"-11\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"189Cloud\",\n        \"local_sort\": true,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": false,\n        \"need_ms\": false,\n        \"default_root\": \"-11\",\n        \"alert\": \"info|You can try to use 189PC driver if this driver does not work.\"\n      }\n    },\n    \"189CloudPC\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"username\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"password\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"validate_code\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"root_folder_id\",\n          \"type\": \"string\",\n          \"default\": \"-11\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"filename\",\n          \"options\": \"filename,filesize,lastOpTime\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"asc\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"type\",\n          \"type\": \"select\",\n          \"default\": \"personal\",\n          \"options\": \"personal,family\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"family_id\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"upload_method\",\n          \"type\": \"select\",\n          \"default\": \"stream\",\n          \"options\": \"stream,rapid,old\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"no_use_ocr\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"189CloudPC\",\n        \"local_sort\": false,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": false,\n        \"need_ms\": false,\n        \"default_root\": \"-11\",\n        \"alert\": \"\"\n      }\n    },\n    \"AList V2\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"name,size,modified\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"root_folder_path\",\n          \"type\": \"string\",\n          \"default\": \"/\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"url\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"password\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"access_token\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"AList V2\",\n        \"local_sort\": true,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": true,\n        \"need_ms\": false,\n        \"default_root\": \"/\",\n        \"alert\": \"\"\n      }\n    },\n    \"AList V3\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"name,size,modified\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"root_folder_path\",\n          \"type\": \"string\",\n          \"default\": \"/\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"url\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"meta_password\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"username\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"password\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"token\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"AList V3\",\n        \"local_sort\": true,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": false,\n        \"need_ms\": false,\n        \"default_root\": \"/\",\n        \"alert\": \"\"\n      }\n    },\n    \"Alias\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"name,size,modified\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"paths\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"Alias\",\n        \"local_sort\": true,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": true,\n        \"no_upload\": true,\n        \"need_ms\": false,\n        \"default_root\": \"/\",\n        \"alert\": \"\"\n      }\n    },\n    \"Aliyundrive\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"root_folder_id\",\n          \"type\": \"string\",\n          \"default\": \"root\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"refresh_token\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"name,size,updated_at,created_at\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"ASC,DESC\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"rapid_upload\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"internal_upload\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"Aliyundrive\",\n        \"local_sort\": false,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": false,\n        \"need_ms\": false,\n        \"default_root\": \"root\",\n        \"alert\": \"warning|There may be an infinite loop bug in this driver.\\nDeprecated, no longer maintained and will be removed in a future version.\\nWe recommend using the official driver AliyundriveOpen.\"\n      }\n    },\n    \"AliyundriveOpen\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"drive_type\",\n          \"type\": \"select\",\n          \"default\": \"default\",\n          \"options\": \"default,resource,backup\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"root_folder_id\",\n          \"type\": \"string\",\n          \"default\": \"root\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"refresh_token\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"name,size,updated_at,created_at\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"ASC,DESC\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"oauth_token_url\",\n          \"type\": \"string\",\n          \"default\": \"https://api.xhofe.top/alist/ali_open/token\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"client_id\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"Keep it empty if you don't have one\"\n        },\n        {\n          \"name\": \"client_secret\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"Keep it empty if you don't have one\"\n        },\n        {\n          \"name\": \"remove_way\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"trash,delete\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"rapid_upload\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"If you enable this option, the file will be uploaded to the server first, so the progress will be incorrect\"\n        },\n        {\n          \"name\": \"internal_upload\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"If you are using Aliyun ECS is located in Beijing, you can turn it on to boost the upload speed\"\n        },\n        {\n          \"name\": \"livp_download_format\",\n          \"type\": \"select\",\n          \"default\": \"jpeg\",\n          \"options\": \"jpeg,mov\",\n          \"required\": false,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"AliyundriveOpen\",\n        \"local_sort\": false,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": false,\n        \"need_ms\": false,\n        \"default_root\": \"root\",\n        \"alert\": \"\"\n      }\n    },\n    \"AliyundriveShare\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"refresh_token\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"share_id\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"share_pwd\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"root_folder_id\",\n          \"type\": \"string\",\n          \"default\": \"root\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"name,size,updated_at,created_at\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"ASC,DESC\",\n          \"required\": false,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"AliyundriveShare\",\n        \"local_sort\": false,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": true,\n        \"need_ms\": false,\n        \"default_root\": \"root\",\n        \"alert\": \"\"\n      }\n    },\n    \"BaiduNetdisk\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"refresh_token\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"root_folder_path\",\n          \"type\": \"string\",\n          \"default\": \"/\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"name\",\n          \"options\": \"name,time,size\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"asc\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"download_api\",\n          \"type\": \"select\",\n          \"default\": \"official\",\n          \"options\": \"official,crack\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"client_id\",\n          \"type\": \"string\",\n          \"default\": \"iYCeC9g08h5vuP9UqvPHKKSVrKFXGa1v\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"client_secret\",\n          \"type\": \"string\",\n          \"default\": \"jXiFMOPVPCWlO2M5CwWQzffpNPaGTRBG\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"custom_crack_ua\",\n          \"type\": \"string\",\n          \"default\": \"netdisk\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"config\": {\n        \"name\": \"BaiduNetdisk\",\n        \"local_sort\": false,\n        \"only_local\": false,\n        \"only_proxy\": false,\n        \"no_cache\": false,\n        \"no_upload\": false,\n        \"need_ms\": false,\n        \"default_root\": \"/\",\n        \"alert\": \"\"\n      }\n    },\n    \"BaiduPhoto\": {\n      \"common\": [\n        {\n          \"name\": \"mount_path\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The path you want to mount to, it is unique and cannot be repeated\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": \"number\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"use to sort\"\n        },\n        {\n          \"name\": \"remark\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"cache_expiration\",\n          \"type\": \"number\",\n          \"default\": \"30\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"The cache expiration time for this storage\"\n        },\n        {\n          \"name\": \"web_proxy\",\n          \"type\": \"bool\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"webdav_policy\",\n          \"type\": \"select\",\n          \"default\": \"302_redirect\",\n          \"options\": \"302_redirect,use_proxy_url,native_proxy\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"down_proxy_url\",\n          \"type\": \"text\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_by\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"name,size,modified\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"order_direction\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"asc,desc\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"extract_folder\",\n          \"type\": \"select\",\n          \"default\": \"\",\n          \"options\": \"front,back\",\n          \"required\": false,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"enable_sign\",\n          \"type\": \"bool\",\n          \"default\": \"false\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        }\n      ],\n      \"additional\": [\n        {\n          \"name\": \"refresh_token\",\n          \"type\": \"string\",\n          \"default\": \"\",\n          \"options\": \"\",\n          \"required\": true,\n          \"help\": \"\"\n        },\n        {\n          \"name\": \"show_type","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsachinsenal0x64%2Falist-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsachinsenal0x64%2Falist-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsachinsenal0x64%2Falist-api/lists"}