OpenListTeam / OpenListTeam/OpenList
[BUG] bug:/fs/list 接口返回体中 provider 字段统一返回 unknown(预期应返回存储驱动类型如 Local / WebDav)
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 24.7k
- Forks
- 2.3k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 36
Description
请确认以下事项
-
我已确认阅读并同意 AGPL-3.0 第15条 。
本程序不提供任何明示或暗示的担保,使用风险由您自行承担。 -
我已确认阅读并同意 AGPL-3.0 第16条 。
无论何种情况,版权持有人或其他分发者均不对使用本程序所造成的任何损失承担责任。 -
我确认我的描述清晰,语法礼貌,能帮助开发者快速定位问题,并符合社区规则。
-
我已确认阅读了OpenList文档。
-
我已确认没有重复的问题或讨论。
-
我已确认是OpenList的问题,而不是其他原因(例如 网络 ,依赖或操作)。
-
我认为此问题必须由OpenList处理,而非第三方。
-
我已确认这个问题在最新版本中没有被修复。
-
我没有阅读这个清单,只是闭眼选中了所有的复选框,请关闭这个 Issue 。
OpenList 版本(必填)
v4.2.3
使用的存储驱动(必填)
WebDav、本机存储
问题描述(必填)
使用OpenList v4.2.3版本,通过/fs/list的API接口去请求OpenList Api,Api的响应返回体中'provider'的返回值不能正常返回对应存储的名称,而是返回 ‘unknown',预期应当返回对应的存储信息,如WebDav,本地为Local。我拉取了对应的接口返回信息。根据OpenList Api文档的返回体示例如下(根据OpenList的Api文档 预期应当返回Local):
{
"code": 200,
"message": "success",
"data": {
"content": [
{
"id": "",
"path": "D:\files\document.pdf",
"name": "document.pdf",
"size": 1024000,
"is_dir": false,
"modified": "2025-10-20T15:30:00+08:00",
"created": "2025-10-20T10:00:00+08:00",
"sign": "YBgnmykwCXUstXvNGtECaz_12gseXSL03cpqh5rTcGA=:0",
"thumb": "",
"type": 4,
"hashinfo": "null",
"hash_info": null,
"mount_details": {
"driver_name": "Local",
"total_space": 1000000000000,
"free_space": 500000000000
}
}
],
"total": 14,
"readme": "",
"header": "",
"write": true,
"provider": "**Local**"
}
日志(必填)
{
"size": 0,
"is_dir": true,
"modified": "2026-07-09T11:36:50.1600343+08:00",
"created": "2026-07-09T11:36:18.7093669+08:00",
"sign": "",
"thumb": "",
"type": 1,
"hashinfo": "null",
"hash_info": null
}
],
"total": 16,
"readme": "",
"header": "",
"write": true,
"write_content_bypass": true,
"provider": "**unknown**"
}
配置文件内容(必填)
点击展开/收起 OpenList 配置文件 JSON
{
"encrypted": "",
"settings": [
{
"key": "version",
"value": "v4.2.3 (Commit: a92d59d) - Frontend: v4.2.3 - Build at: 2026-07-01 09:27:02 +0000",
"help": "",
"type": "string",
"options": "",
"group": 1,
"flag": 2,
"index": 0
},
{
"key": "site_title",
"value": "OpenList",
"help": "",
"type": "string",
"options": "",
"group": 1,
"flag": 0,
"index": 1
},
{
"key": "announcement",
"value": "Welcome to the OpenList project!\nFor the latest updates, to contribute code, or to submit suggestions and issues, please visit our [project repository](https://github.com/OpenListTeam/OpenList).",
"help": "",
"type": "text",
"options": "",
"group": 1,
"flag": 0,
"index": 2
},
{
"key": "pagination_type",
"value": "all",
"help": "",
"type": "select",
"options": "all,pagination,load_more,auto_load_more",
"group": 1,
"flag": 0,
"index": 3
},
{
"key": "default_page_size",
"value": "3000",
"help": "",
"type": "number",
"options": "",
"group": 1,
"flag": 0,
"index": 4
},
{
"key": "allow_indexed",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 1,
"flag": 0,
"index": 5
},
{
"key": "allow_mounted",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 1,
"flag": 0,
"index": 6
},
{
"key": "robots_txt",
"value": "User-agent: *\nAllow: /",
"help": "",
"type": "text",
"options": "",
"group": 1,
"flag": 0,
"index": 7
},
{
"key": "logo",
"value": "[https://res.oplist.org/logo/logo.svg](https://res.oplist.org/logo/logo.svg)",
"help": "",
"type": "text",
"options": "",
"group": 2,
"flag": 0,
"index": 8
},
{
"key": "favicon",
"value": "[https://res.oplist.org/logo/logo.svg](https://res.oplist.org/logo/logo.svg)",
"help": "",
"type": "string",
"options": "",
"group": 2,
"flag": 0,
"index": 9
},
{
"key": "main_color",
"value": "#1890ff",
"help": "",
"type": "string",
"options": "",
"group": 2,
"flag": 0,
"index": 10
},
{
"key": "home_icon",
"value": "🏠",
"help": "",
"type": "string",
"options": "",
"group": 2,
"flag": 0,
"index": 11
},
{
"key": "share_icon",
"value": "🎁",
"help": "",
"type": "string",
"options": "",
"group": 2,
"flag": 0,
"index": 12
},
{
"key": "home_container",
"value": "max_980px",
"help": "",
"type": "select",
"options": "max_980px,hope_container",
"group": 2,
"flag": 0,
"index": 13
},
{
"key": "settings_layout",
"value": "list",
"help": "",
"type": "select",
"options": "list,responsive",
"group": 2,
"flag": 0,
"index": 14
},
{
"key": "hide_storage_details",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 2,
"flag": 1,
"index": 15
},
{
"key": "hide_storage_details_in_manage_page",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 2,
"flag": 1,
"index": 16
},
{
"key": "show_disk_usage_in_plain_text",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 2,
"flag": 0,
"index": 17
},
{
"key": "text_types",
"value": "txt,htm,html,xml,java,properties,sql,js,md,json,conf,ini,vue,php,py,bat,gitignore,yml,go,sh,c,cpp,h,hpp,tsx,vtt,srt,ass,rs,lrc,strm",
"help": "",
"type": "text",
"options": "",
"group": 3,
"flag": 1,
"index": 18
},
{
"key": "audio_types",
"value": "mp3,flac,ogg,m4a,wav,opus,wma",
"help": "",
"type": "text",
"options": "",
"group": 3,
"flag": 1,
"index": 19
},
{
"key": "video_types",
"value": "mp4,mkv,avi,mov,rmvb,webm,flv,m3u8",
"help": "",
"type": "text",
"options": "",
"group": 3,
"flag": 1,
"index": 20
},
{
"key": "image_types",
"value": "jpg,tiff,jpeg,png,gif,bmp,svg,ico,swf,webp,avif",
"help": "",
"type": "text",
"options": "",
"group": 3,
"flag": 1,
"index": 21
},
{
"key": "proxy_types",
"value": "m3u8,url",
"help": "",
"type": "text",
"options": "",
"group": 3,
"flag": 1,
"index": 22
},
{
"key": "proxy_ignore_headers",
"value": "authorization,referer",
"help": "",
"type": "text",
"options": "",
"group": 3,
"flag": 1,
"index": 23
},
{
"key": "external_previews",
"value": "{}",
"help": "",
"type": "text",
"options": "",
"group": 3,
"flag": 0,
"index": 24
},
{
"key": "iframe_previews",
"value": "{\n\t\"doc,docx,xls,xlsx,ppt,pptx\": {\n\t\t\"Microsoft\":\"[https://view.officeapps.live.com/op/view.aspx?src=$e_url](https://view.officeapps.live.com/op/view.aspx?src=$e_url)\",\n\t\t\"Google\":\"[https://docs.google.com/gview?url=$e_url&embedded=true](https://docs.google.com/gview?url=$e_url&embedded=true)\"\n\t},\n\t\"pdf\": {\n\t\t\"PDF.js\":\"[https://res.oplist.org/pdf.js/web/viewer.html?file=$e_url](https://res.oplist.org/pdf.js/web/viewer.html?file=$e_url)\"\n\t},\n\t\"epub\": {\n\t\t\"EPUB.js\":\"[https://res.oplist.org/epub.js/viewer.html?url=$e_url](https://res.oplist.org/epub.js/viewer.html?url=$e_url)\"\n\t}\n}",
"help": "",
"type": "text",
"options": "",
"group": 3,
"flag": 0,
"index": 25
},
{
"key": "audio_cover",
"value": "[https://res.oplist.org/logo/logo.svg](https://res.oplist.org/logo/logo.svg)",
"help": "",
"type": "string",
"options": "",
"group": 3,
"flag": 0,
"index": 26
},
{
"key": "audio_autoplay",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 3,
"flag": 0,
"index": 27
},
{
"key": "video_autoplay",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 3,
"flag": 0,
"index": 28
},
{
"key": "preview_download_by_default",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 3,
"flag": 0,
"index": 29
},
{
"key": "preview_archives_by_default",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 3,
"flag": 0,
"index": 30
},
{
"key": "share_preview_download_by_default",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 3,
"flag": 0,
"index": 31
},
{
"key": "share_preview_archives_by_default",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 3,
"flag": 0,
"index": 32
},
{
"key": "readme_autorender",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 3,
"flag": 0,
"index": 33
},
{
"key": "filter_readme_scripts",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 3,
"flag": 0,
"index": 34
},
{
"key": "non_efs_zip_encoding",
"value": "IBM437",
"help": "",
"type": "string",
"options": "",
"group": 3,
"flag": 0,
"index": 35
},
{
"key": "hide_files",
"value": "/\\/README.md/i",
"help": "",
"type": "text",
"options": "",
"group": 4,
"flag": 0,
"index": 36
},
{
"key": "package_download",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 4,
"flag": 0,
"index": 37
},
{
"key": "customize_head",
"value": "",
"help": "",
"type": "text",
"options": "",
"group": 4,
"flag": 1,
"index": 38
},
{
"key": "customize_body",
"value": "",
"help": "",
"type": "text",
"options": "",
"group": 4,
"flag": 1,
"index": 39
},
{
"key": "link_expiration",
"value": "0",
"help": "",
"type": "number",
"options": "",
"group": 4,
"flag": 1,
"index": 40
},
{
"key": "sign_all",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 4,
"flag": 1,
"index": 41
},
{
"key": "privacy_regs",
"value": "(?:(?:\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(?:\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\n([[:xdigit:]]{1,4}(?::[[:xdigit:]]{1,4}){7}|::|:(?::[[:xdigit:]]{1,4}){1,6}|[[:xdigit:]]{1,4}:(?::[[:xdigit:]]{1,4}){1,5}|(?:[[:xdigit:]]{1,4}:){2}(?::[[:xdigit:]]{1,4}){1,4}|(?:[[:xdigit:]]{1,4}:){3}(?::[[:xdigit:]]{1,4}){1,3}|(?:[[:xdigit:]]{1,4}:){4}(?::[[:xdigit:]]{1,4}){1,2}|(?:[[:xdigit:]]{1,4}:){5}:[[:xdigit:]]{1,4}|(?:[[:xdigit:]]{1,4}:){1,6}:)\n(?U)access_token=(.*)&",
"help": "",
"type": "text",
"options": "",
"group": 4,
"flag": 1,
"index": 42
},
{
"key": "ocr_api",
"value": "[https://openlistteam-ocr-api-server.hf.space/ocr/file/json](https://openlistteam-ocr-api-server.hf.space/ocr/file/json)",
"help": "",
"type": "string",
"options": "",
"group": 4,
"flag": 0,
"index": 43
},
{
"key": "filename_char_mapping",
"value": "{\"/\": \"|\"}",
"help": "",
"type": "text",
"options": "",
"group": 4,
"flag": 0,
"index": 44
},
{
"key": "forward_direct_link_params",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 4,
"flag": 0,
"index": 45
},
{
"key": "ignore_direct_link_params",
"value": "sign,openlist_ts,raw",
"help": "",
"type": "string",
"options": "",
"group": 4,
"flag": 0,
"index": 46
},
{
"key": "webauthn_login_enabled",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 4,
"flag": 0,
"index": 47
},
{
"key": "share_preview",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 4,
"flag": 0,
"index": 48
},
{
"key": "share_archive_preview",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 4,
"flag": 0,
"index": 49
},
{
"key": "share_force_proxy",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 4,
"flag": 1,
"index": 50
},
{
"key": "share_summary_content",
"value": "@{{creator}} shared {{#each files}}{{#if @first}}\"{{filename this}}\"{{/if}}{{#if @last}}{{#unless (eq @index 0)}} and {{@index}} more files{{/unless}}{{/if}}{{/each}} from {{site_title}}: {{base_url}}/@s/{{id}}{{#if pwd}} , the share code is {{pwd}}{{/if}}{{#if expires}}, please access before {{dateLocaleString expires}}.{{/if}}",
"help": "",
"type": "text",
"options": "",
"group": 4,
"flag": 0,
"index": 51
},
{
"key": "handle_hook_after_writing",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 4,
"flag": 1,
"index": 52
},
{
"key": "handle_hook_rate_limit",
"value": "0",
"help": "",
"type": "number",
"options": "",
"group": 4,
"flag": 1,
"index": 53
},
{
"key": "ignore_system_files",
"value": "true",
"help": "When enabled, ignores common system files during upload (.DS_Store, desktop.ini, Thumbs.db, and files starting with ._)",
"type": "bool",
"options": "",
"group": 4,
"flag": 1,
"index": 54
},
{
"key": "token",
"value": "[REDACTED_TOKEN]",
"help": "",
"type": "string",
"options": "",
"group": 0,
"flag": 1,
"index": 55
},
{
"key": "search_index",
"value": "meilisearch",
"help": "",
"type": "select",
"options": "database,database_non_full_text,bleve,meilisearch,none",
"group": 6,
"flag": 0,
"index": 56
},
{
"key": "auto_update_index",
"value": "true",
"help": "",
"type": "bool",
"options": "",
"group": 6,
"flag": 0,
"index": 57
},
{
"key": "ignore_paths",
"value": "",
"help": "one path per line",
"type": "text",
"options": "",
"group": 6,
"flag": 1,
"index": 58
},
{
"key": "max_index_depth",
"value": "20",
"help": "max depth of index",
"type": "number",
"options": "",
"group": 6,
"flag": 1,
"index": 59
},
{
"key": "index_progress",
"value": "{\"obj_count\":0,\"is_done\":true,\"last_done_time\":null,\"error\":\"\"}",
"help": "",
"type": "text",
"options": "",
"group": 0,
"flag": 1,
"index": 60
},
{
"key": "sso_login_enabled",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 7,
"flag": 0,
"index": 61
},
{
"key": "sso_login_platform",
"value": "",
"help": "",
"type": "select",
"options": "Casdoor,Github,Microsoft,Google,Dingtalk,OIDC",
"group": 7,
"flag": 0,
"index": 62
},
{
"key": "sso_client_id",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 7,
"flag": 1,
"index": 63
},
{
"key": "sso_client_secret",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 7,
"flag": 1,
"index": 64
},
{
"key": "sso_oidc_username_key",
"value": "name",
"help": "",
"type": "string",
"options": "",
"group": 7,
"flag": 1,
"index": 65
},
{
"key": "sso_organization_name",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 7,
"flag": 1,
"index": 66
},
{
"key": "sso_application_name",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 7,
"flag": 1,
"index": 67
},
{
"key": "sso_endpoint_name",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 7,
"flag": 1,
"index": 68
},
{
"key": "sso_jwt_public_key",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 7,
"flag": 1,
"index": 69
},
{
"key": "sso_extra_scopes",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 7,
"flag": 1,
"index": 70
},
{
"key": "sso_auto_register",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 7,
"flag": 1,
"index": 71
},
{
"key": "sso_default_dir",
"value": "/",
"help": "",
"type": "string",
"options": "",
"group": 7,
"flag": 1,
"index": 72
},
{
"key": "sso_default_permission",
"value": "0",
"help": "",
"type": "number",
"options": "",
"group": 7,
"flag": 1,
"index": 73
},
{
"key": "sso_compatibility_mode",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 7,
"flag": 0,
"index": 74
},
{
"key": "ldap_login_enabled",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 8,
"flag": 0,
"index": 75
},
{
"key": "ldap_server",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 8,
"flag": 1,
"index": 76
},
{
"key": "ldap_skip_tls_verify",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 8,
"flag": 1,
"index": 77
},
{
"key": "ldap_manager_dn",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 8,
"flag": 1,
"index": 78
},
{
"key": "ldap_manager_password",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 8,
"flag": 1,
"index": 79
},
{
"key": "ldap_user_search_base",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 8,
"flag": 1,
"index": 80
},
{
"key": "ldap_user_search_filter",
"value": "(uid=%s)",
"help": "",
"type": "string",
"options": "",
"group": 8,
"flag": 1,
"index": 81
},
{
"key": "ldap_default_dir",
"value": "/",
"help": "",
"type": "string",
"options": "",
"group": 8,
"flag": 1,
"index": 82
},
{
"key": "ldap_default_permission",
"value": "0",
"help": "",
"type": "number",
"options": "",
"group": 8,
"flag": 1,
"index": 83
},
{
"key": "ldap_login_tips",
"value": "login with ldap",
"help": "",
"type": "string",
"options": "",
"group": 8,
"flag": 0,
"index": 84
},
{
"key": "s3_access_key_id",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 9,
"flag": 1,
"index": 85
},
{
"key": "s3_secret_access_key",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 9,
"flag": 1,
"index": 86
},
{
"key": "s3_buckets",
"value": "[]",
"help": "",
"type": "string",
"options": "",
"group": 9,
"flag": 1,
"index": 87
},
{
"key": "ftp_public_host",
"value": "127.0.0.1",
"help": "",
"type": "string",
"options": "",
"group": 10,
"flag": 1,
"index": 88
},
{
"key": "ftp_pasv_port_map",
"value": "",
"help": "",
"type": "text",
"options": "",
"group": 10,
"flag": 1,
"index": 89
},
{
"key": "ftp_mandatory_tls",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 10,
"flag": 1,
"index": 90
},
{
"key": "ftp_implicit_tls",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 10,
"flag": 1,
"index": 91
},
{
"key": "ftp_tls_private_key_path",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 10,
"flag": 1,
"index": 92
},
{
"key": "ftp_tls_public_cert_path",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 10,
"flag": 1,
"index": 93
},
{
"key": "sftp_disable_password_login",
"value": "false",
"help": "",
"type": "bool",
"options": "",
"group": 10,
"flag": 1,
"index": 94
},
{
"key": "offline_download_task_threads_num",
"value": "5",
"help": "",
"type": "number",
"options": "",
"group": 11,
"flag": 1,
"index": 95
},
{
"key": "offline_download_transfer_task_threads_num",
"value": "5",
"help": "",
"type": "number",
"options": "",
"group": 11,
"flag": 1,
"index": 96
},
{
"key": "upload_task_threads_num",
"value": "5",
"help": "",
"type": "number",
"options": "",
"group": 11,
"flag": 1,
"index": 97
},
{
"key": "copy_task_threads_num",
"value": "5",
"help": "",
"type": "number",
"options": "",
"group": 11,
"flag": 1,
"index": 98
},
{
"key": "decompress_download_task_threads_num",
"value": "5",
"help": "",
"type": "number",
"options": "",
"group": 11,
"flag": 1,
"index": 99
},
{
"key": "decompress_upload_task_threads_num",
"value": "5",
"help": "",
"type": "number",
"options": "",
"group": 11,
"flag": 1,
"index": 100
},
{
"key": "max_client_download_speed",
"value": "-1",
"help": "",
"type": "number",
"options": "",
"group": 11,
"flag": 1,
"index": 101
},
{
"key": "max_client_upload_speed",
"value": "-1",
"help": "",
"type": "number",
"options": "",
"group": 11,
"flag": 1,
"index": 102
},
{
"key": "max_server_download_speed",
"value": "-1",
"help": "",
"type": "number",
"options": "",
"group": 11,
"flag": 1,
"index": 103
},
{
"key": "max_server_upload_speed",
"value": "-1",
"help": "",
"type": "number",
"options": "",
"group": 11,
"flag": 1,
"index": 104
},
{
"key": "123_temp_dir",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 5,
"flag": 1,
"index": 105
},
{
"key": "aria2_secret",
"value": "",
"help": "",
"type": "string",
"options": "",
"group": 5,
"flag": 1,
"index": 106
},
{
"key": "aria2_uri",
"value": "http://localhost:6800/jsonrpc",
"help": "",
"type": "string",
"options": "",
"group": 5,
"flag": 1,
"index": 107
},
{
"key": "qbittorrent_seedtime",
"value": "0",
"help": "",
"type": "number",
"options": "",
"group": 5,
"flag": 1,
"index": 108
},
{
"key": "qbittorrent_url",
"value": "http://admin:[REDACTED_PASSWORD]@localhost:8080/",
"help": "",
"type": "string",
"options": "",
"group": 5,
"flag": 1,
"index": 109
},
{
"key": "transmission_seedtime",
"value": "0",
"help": "",
"type": "number",
"options": "",
"group": 5,
"flag": 1,
"index": 110
},
{
"key": "transmission_uri",
"value": "http://localhost:9091/transmission/rpc",
"help": "",
"type": "string",
"options": "",
"group": 5,
"flag": 1,
"index": 111
}
],
"users": [
{
"id": 1,
"username": "admin",
"password": "",
"base_path": "/",
"role": 2,
"disabled": false,
"permission": 65534,
"sso_id": "",
"allow_ldap": true
},
{
"id": 2,
"username": "guest",
"password": "",
"base_path": "/",
"role": 1,
"disabled": true,
"permission": 0,
"sso_id": "",
"allow_ldap": true
}
],
"storages": [
{
"id": 2,
"mount_path": "/F盘",
"order": 0,
"driver": "Local",
"cache_expiration": 0,
"custom_cache_policies": "",
"status": "work",
"addition": "{\"root_folder_path\":\"F:\\\\\",\"directory_size\":false,\"thumbnail\":false,\"thumb_cache_folder\":\"\",\"thumb_concurrency\":\"16\",\"video_thumb_pos\":\"20%\",\"show_hidden\":true,\"mkdir_perm\":\"777\",\"recycle_bin_path\":\"delete permanently\"}",
"remark": "",
"modified": "2026-07-10T20:46:09.5486427+08:00",
"disabled": false,
"disable_index": true,
"enable_sign": false,
"order_by": "",
"order_direction": "",
"extract_folder": "",
"web_proxy": false,
"webdav_policy": "native_proxy",
"proxy_range": false,
"down_proxy_url": "",
"disable_proxy_sign": false
},
{
"id": 3,
"mount_path": "/G盘",
"order": 0,
"driver": "Local",
"cache_expiration": 0,
"custom_cache_policies": "",
"status": "work",
"addition": "{\"root_folder_path\":\"G:\\\\\",\"directory_size\":false,\"thumbnail\":false,\"thumb_cache_folder\":\"\",\"thumb_concurrency\":\"16\",\"video_thumb_pos\":\"20%\",\"show_hidden\":true,\"mkdir_perm\":\"777\",\"recycle_bin_path\":\"delete permanently\"}",
"remark": "",
"modified": "2026-07-10T20:46:25.5069275+08:00",
"disabled": false,
"disable_index": true,
"enable_sign": false,
"order_by": "",
"order_direction": "",
"extract_folder": "",
"web_proxy": false,
"webdav_policy": "native_proxy",
"proxy_range": false,
"down_proxy_url": "",
"disable_proxy_sign": false
},
{
"id": 4,
"mount_path": "/群晖WebDav",
"order": 0,
"driver": "WebDav",
"cache_expiration": 30,
"custom_cache_policies": "",
"status": "work",
"addition": "{\"vendor\":\"other\",\"address\":\"[http://192.168.](http://192.168.)x.x:5005\",\"username\":\"[REDACTED_USER]\",\"password\":\"[REDACTED_PASSWORD]\",\"root_folder_path\":\"/\",\"tls_insecure_skip_verify\":false}",
"remark": "",
"modified": "2026-07-10T21:00:46.443839+08:00",
"disabled": false,
"disable_index": false,
"enable_sign": false,
"order_by": "",
"order_direction": "",
"extract_folder": "",
"web_proxy": true,
"webdav_policy": "native_proxy",
"proxy_range": false,
"down_proxy_url": "",
"disable_proxy_sign": false
}
],
"metas": [
{
"id": 1,
"path": "/",
"read_users": [],
"read_users_sub": false,
"write_users": [],
"write_users_sub": false,
"password": "",
"p_sub": false,
"write": false,
"w_sub": false,
"hide": "System Volume Information\n^?\\$RECYCLE\\.BIN",
"h_sub": true,
"readme": "",
"r_sub": false,
"header": "",
"header_sub": false
}
],
"shares": []
}
复现链接(可选)
No response
AI生成内容(可选)
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the /fs/list API response and the code that assigns its provider field; the issue does not name a source file or test. Compare responses for WebDav and local storage with the documented payload, then verify that provider reports the corresponding storage driver instead of unknown.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100