管理面板
FileCodeBox 提供了功能完善的管理面板,让管理员可以方便地管理文件、查看系统状态和修改配置。本文档介绍管理面板的各项功能和使用方法。
访问管理面板
登录方式
管理面板位于 /admin 路径。访问方式:
- 在浏览器中访问
http://your-domain.com/admin - 输入管理员密码(
admin_token配置项的值) - 点击登录按钮
提示
默认管理员密码是 FileCodeBox2023。请务必在生产环境中修改此密码,详见 安全设置。
显示管理入口
默认情况下,首页不显示管理面板入口。您可以通过配置控制是否显示:
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
showAdminAddr | int | 0 | 是否在首页显示管理入口(1=显示,0=隐藏) |
安全建议
在公开服务中,建议保持 showAdminAddr 为 0,通过直接访问 /admin 路径进入管理面板,减少被恶意扫描的风险。
认证机制
管理面板使用 JWT(JSON Web Token)进行身份认证:
- 登录成功后,服务器返回一个包含管理员身份的 Token
- 后续请求通过
Authorization: Bearer <token>头部携带 Token - Token 用于验证管理员身份,确保只有授权用户可以访问管理功能
仪表盘
登录后首先看到的是仪表盘页面,展示系统的整体运行状态。
统计指标
仪表盘显示以下关键指标:
| 指标 | 说明 |
|---|---|
文件总数 (totalFiles) | 系统中存储的文件总数量 |
存储使用量 (storageUsed) | 所有文件占用的总存储空间(字节) |
系统运行时间 (sysUptime) | 系统首次启动的时间 |
昨日上传数 (yesterdayCount) | 昨天一整天上传的文件数量 |
昨日上传量 (yesterdaySize) | 昨天上传文件的总大小(字节) |
今日上传数 (todayCount) | 今天到目前为止上传的文件数量 |
今日上传量 (todaySize) | 今天上传文件的总大小(字节) |
指标说明
- 文件总数:包括所有未过期的文件和文本分享
- 存储使用量:显示实际文件占用的存储空间,不包括数据库等系统文件
- 昨日/今日统计:基于文件创建时间计算,用于了解系统使用趋势
提示
存储使用量显示的是字节数。例如 10485760 表示约 10MB。
文件管理
文件列表
文件管理页面展示系统中所有已分享的文件,支持分页浏览和搜索。
列表信息包括:
- 文件 ID
- 提取码(code)
- 文件名前缀(prefix)
- 文件后缀(suffix)
- 文件大小
- 创建时间
- 过期时间
- 剩余下载次数
搜索文件
使用搜索功能可以快速找到特定文件:
- 在搜索框中输入关键词
- 系统会根据文件名前缀(prefix)进行模糊匹配
- 搜索结果实时更新
搜索示例:
- 输入
report可以找到所有文件名包含 "report" 的文件 - 输入
.pdf可以找到所有 PDF 文件(如果文件名包含此字符串)
分页浏览
文件列表支持分页显示:
| 参数 | 默认值 | 说明 |
|---|---|---|
page | 1 | 当前页码 |
size | 10 | 每页显示数量 |
删除文件
管理员可以删除任意文件:
- 在文件列表中找到要删除的文件
- 点击删除按钮
- 确认删除操作
警告
删除操作不可恢复!文件将从存储后端永久删除,同时删除数据库中的记录。
删除流程:
- 系统首先从存储后端(本地/S3/OneDrive 等)删除实际文件
- 然后从数据库中删除文件记录
- 删除后,对应的提取码将失效
下载文件
管理员可以直接下载任意文件:
- 在文件列表中找到目标文件
- 点击下载按钮
- 文件将通过浏览器下载
对于文本分享,系统会直接返回文本内容而不是下载文件。
修改文件信息
管理员可以修改已分享文件的部分信息:
| 可修改字段 | 说明 |
|---|---|
code | 提取码(必须唯一,不能与其他文件重复) |
prefix | 文件名前缀 |
suffix | 文件后缀名 |
expired_at | 过期时间 |
expired_count | 剩余下载次数 |
修改提取码:
原提取码:abc123
新提取码:myfile2024注意
修改提取码时,系统会检查新提取码是否已被使用。如果已存在相同的提取码,修改将失败。
本地文件管理
除了管理已分享的文件,管理面板还提供了本地文件管理功能,用于管理 data/local 目录中的文件。
查看本地文件
本地文件列表显示 data/local 目录中的所有文件:
| 信息 | 说明 |
|---|---|
| 文件名 | 文件的完整名称 |
| 创建时间 | 文件的创建时间 |
| 文件大小 | 文件大小(字节) |
分享本地文件
可以将本地文件快速分享:
- 在本地文件列表中选择要分享的文件
- 设置过期方式和过期值
- 点击分享按钮
- 系统生成提取码
分享参数:
| 参数 | 说明 |
|---|---|
filename | 要分享的文件名 |
expire_style | 过期方式(day/hour/minute/forever/count) |
expire_value | 过期值(天数/小时数/分钟数/下载次数) |
删除本地文件
可以删除 data/local 目录中的文件:
- 在本地文件列表中找到要删除的文件
- 点击删除按钮
- 确认删除
使用场景
本地文件管理功能适用于:
- 批量上传文件到服务器后进行分享
- 管理通过其他方式上传到服务器的文件
- 清理不需要的本地文件
系统设置
查看配置
在系统设置页面可以查看当前所有配置项的值。配置项按类别分组显示:
- 基础设置(站点名称、描述等)
- 上传设置(文件大小限制、频率限制等)
- 存储设置(存储类型、路径等)
- 主题设置(主题选择、透明度等)
- 安全设置(管理员密码、错误限制等)
修改配置
管理员可以通过管理面板修改大部分配置:
- 进入系统设置页面
- 找到要修改的配置项
- 输入新的值
- 点击保存按钮
可修改的配置项:
| 类别 | 配置项示例 |
|---|---|
| 基础设置 | name, description, keywords, notify_title, notify_content |
| 上传设置 | uploadSize, uploadMinute, uploadCount, openUpload, enableChunk |
| 过期设置 | expireStyle, max_save_seconds |
| 主题设置 | themesSelect, opacity, background |
| 安全设置 | admin_token, showAdminAddr, errorMinute, errorCount |
| 存储设置 | file_storage, storage_path 及各存储后端的配置 |
注意
admin_token(管理员密码)不能设置为空themesChoices(主题列表)不可通过管理面板修改- 修改存储设置后,已有文件不会自动迁移
配置生效
配置修改后立即生效,无需重启服务。配置保存在数据库中,重启后仍然有效。
配置存储位置:
- 数据库:
data/filecodebox.db - 表名:
keyvalue - 键名:
settings
API 接口
管理面板的所有功能都通过 REST API 实现,以下是主要接口:
认证接口
登录
POST /admin/login
Content-Type: application/json
{
"password": "your-admin-password"
}响应:
{
"code": 200,
"detail": {
"token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer"
}
}仪表盘接口
获取统计数据
GET /admin/dashboard
Authorization: Bearer <token>文件管理接口
获取文件列表
GET /admin/file/list?page=1&size=10&keyword=
Authorization: Bearer <token>删除文件
DELETE /admin/file/delete
Authorization: Bearer <token>
Content-Type: application/json
{
"id": 123
}下载文件
GET /admin/file/download?id=123
Authorization: Bearer <token>修改文件信息
PATCH /admin/file/update
Authorization: Bearer <token>
Content-Type: application/json
{
"id": 123,
"code": "newcode",
"expired_at": "2024-12-31T23:59:59"
}本地文件接口
获取本地文件列表
GET /admin/local/lists
Authorization: Bearer <token>删除本地文件
DELETE /admin/local/delete
Authorization: Bearer <token>
Content-Type: application/json
{
"filename": "example.txt"
}分享本地文件
POST /admin/local/share
Authorization: Bearer <token>
Content-Type: application/json
{
"filename": "example.txt",
"expire_style": "day",
"expire_value": 7
}配置接口
获取配置
GET /admin/config/get
Authorization: Bearer <token>更新配置
PATCH /admin/config/update
Authorization: Bearer <token>
Content-Type: application/json
{
"admin_token": "new-password",
"uploadSize": 52428800
}常见问题
忘记管理员密码
如果忘记了管理员密码,可以通过以下方式重置:
- 停止 FileCodeBox 服务
- 使用 SQLite 工具打开
data/filecodebox.db - 查询
keyvalue表中key='settings'的记录 - 修改 JSON 中的
admin_token值 - 重启服务
-- 查看当前配置
SELECT * FROM keyvalue WHERE key = 'settings';
-- 或者删除配置,恢复默认密码
DELETE FROM keyvalue WHERE key = 'settings';文件删除失败
如果删除文件时出现错误,可能的原因:
- 存储后端连接失败:检查存储配置是否正确
- 文件已不存在:文件可能已被手动删除
- 权限不足:检查存储目录的写入权限
配置修改不生效
如果修改配置后没有生效:
- 检查是否点击了保存按钮
- 刷新页面查看配置是否已保存
- 检查浏览器控制台是否有错误信息
- 确认配置值的格式是否正确(如数字类型不要输入字符串)
