一个完整的 WebDAV 集成插件,为 SillyTavern 提供安全的远程文件管理功能。
- 打开 SillyTavern
- 进入 Extensions 面板
- 点击 Install Extension
- 粘贴本仓库的 Git URL
- 点击安装
UI 扩展安装后,设置面板中会显示安装引导。按照引导执行以下命令:
Windows (PowerShell):
cd <你的SillyTavern目录>
.\data\<user>\extensions\third-party\sillytavern-webdav\install.ps1macOS / Linux:
cd <你的SillyTavern目录>
bash data/<user>/extensions/third-party/sillytavern-webdav/install.sh安装脚本会自动:
- 将服务端插件复制到
plugins/webdav/目录 - 安装 npm 依赖
- 在
config.yaml中启用enableServerPlugins: true
如果不使用安装脚本,也可以手动配置:
1. 复制服务端插件
将扩展目录中的 plugin/ 文件夹完整复制到 SillyTavern 的 plugins/webdav/ 目录:
<SillyTavern目录>/plugins/webdav/
├── index.mjs
├── package.json
├── credential-store.mjs
├── webdav-client-manager.mjs
├── routes/
│ ├── connection.mjs
│ ├── files.mjs
│ └── operations.mjs
└── credentials/
2. 安装 npm 依赖
cd <SillyTavern目录>/plugins/webdav
npm install3. 启用服务端插件
编辑 SillyTavern 根目录下的 config.yaml,将 enableServerPlugins 设为 true:
enableServerPlugins: true如果
config.yaml中没有该字段,手动添加即可。
安装完成后,各组件位置如下:
| 组件 | 路径 |
|---|---|
| UI 扩展文件 | <SillyTavern目录>/data/<user>/extensions/ST-Webdav/ |
| 服务端插件 | <SillyTavern目录>/plugins/webdav/ |
| 凭据存储 | <SillyTavern目录>/plugins/webdav/credentials/config.enc |
| 安装脚本 | <SillyTavern目录>/data/<user>/extensions/ST-Webdav/install.cmd (Windows) |
<user>是你的 SillyTavern 用户名,默认为default-user。
重启后,设置面板中的安装引导会自动消失,你可以开始使用 WebDAV 功能。
- 在 SillyTavern 中打开 Extensions 面板
- 展开 WebDAV File Manager 设置
- 填写连接参数:
- Server URL: WebDAV 服务器地址
- Username: 用户名
- Password: 密码
- Root Path: 根目录路径(可选,默认
/) - Authentication Type: 认证方式
- 点击 Connect 按钮
| 服务 | URL 格式 |
|---|---|
| Nextcloud | https://your-domain.com/remote.php/dav/files/username/ |
| ownCloud | https://your-domain.com/remote.php/dav/files/username/ |
| Apache mod_dav | https://your-domain.com/webdav/ |
| Nginx WebDAV | https://your-domain.com/dav/ |
| 坚果云 | https://dav.jianguoyun.com/dav/ |
本插件由两个组件组成(合并在同一个仓库中):
| 组件 | 运行环境 | 部署位置 |
|---|---|---|
| UI 扩展 (根目录文件) | 浏览器 | SillyTavern extensions/third-party/sillytavern-webdav/ |
服务端插件 (plugin/ 目录) |
Node.js | SillyTavern plugins/webdav/ |
使用 AES-256-GCM 加密,密钥由机器特征通过 scrypt 派生
sillytavern-webdav/
├── manifest.json # UI 扩展清单 (Install Extension 读取)
├── index.js # UI 扩展入口
├── api-client.js # API 通信封装
├── style.css # 自定义样式
├── templates/
│ ├── settings.html # 设置面板模板
│ └── file-browser.html # 文件浏览器模板
├── i18n/
│ ├── zh-cn.json # 中文翻译
│ └── en.json # 英文翻译
├── plugin/ # 服务端插件 (由 install 脚本部署)
│ ├── package.json
│ ├── index.mjs # 插件入口
│ ├── credential-store.mjs # 凭据加密存储
│ ├── webdav-client-manager.mjs
│ ├── routes/
│ │ ├── connection.mjs # 连接管理路由
│ │ ├── files.mjs # 文件操作路由
│ │ └── operations.mjs # 高级操作路由
│ └── credentials/ # 加密凭据目录
├── install.sh # 一键安装脚本 (macOS/Linux)
├── install.ps1 # 一键安装脚本 (Windows)
└── README.md
服务端插件在 /api/plugins/webdav/ 下注册以下端点:
| 方法 | 路径 | 说明 |
|---|---|---|
POST |
/probe |
探测插件是否在线 |
POST |
/connect |
测试连接并保存凭据 |
POST |
/disconnect |
断开连接并清除凭据 |
GET |
/status |
获取连接状态 |
GET |
/quota |
获取磁盘配额 |
POST |
/list |
列出目录内容 |
GET |
/stat |
获取文件信息 |
POST |
/download |
流式下载文件 |
POST |
/upload |
上传文件 (multipart) |
POST |
/delete |
删除文件或目录 |
POST |
/mkdir |
创建目录 |
POST |
/exists |
检查文件存在 |
POST |
/move |
移动/重命名 |
POST |
/copy |
复制文件 |
AGPL-3.0