Skip to content

管理面板

FileCodeBox 提供了功能完善的管理面板,让管理员可以方便地管理文件、查看系统状态和修改配置。本文档介绍管理面板的各项功能和使用方法。

访问管理面板

登录方式

管理面板位于 /admin 路径。访问方式:

  1. 在浏览器中访问 http://your-domain.com/admin
  2. 输入管理员密码(admin_token 配置项的值)
  3. 点击登录按钮

提示

默认管理员密码是 FileCodeBox2023。请务必在生产环境中修改此密码,详见 安全设置

显示管理入口

默认情况下,首页不显示管理面板入口。您可以通过配置控制是否显示:

配置项类型默认值说明
showAdminAddrint0是否在首页显示管理入口(1=显示,0=隐藏)

安全建议

在公开服务中,建议保持 showAdminAddr0,通过直接访问 /admin 路径进入管理面板,减少被恶意扫描的风险。

认证机制

管理面板使用 JWT(JSON Web Token)进行身份认证:

  1. 登录成功后,服务器返回一个包含管理员身份的 Token
  2. 后续请求通过 Authorization: Bearer <token> 头部携带 Token
  3. Token 用于验证管理员身份,确保只有授权用户可以访问管理功能

仪表盘

登录后首先看到的是仪表盘页面,展示系统的整体运行状态。

统计指标

仪表盘显示以下关键指标:

指标说明
文件总数 (totalFiles)系统中存储的文件总数量
存储使用量 (storageUsed)所有文件占用的总存储空间(字节)
系统运行时间 (sysUptime)系统首次启动的时间
昨日上传数 (yesterdayCount)昨天一整天上传的文件数量
昨日上传量 (yesterdaySize)昨天上传文件的总大小(字节)
今日上传数 (todayCount)今天到目前为止上传的文件数量
今日上传量 (todaySize)今天上传文件的总大小(字节)

指标说明

  • 文件总数:包括所有未过期的文件和文本分享
  • 存储使用量:显示实际文件占用的存储空间,不包括数据库等系统文件
  • 昨日/今日统计:基于文件创建时间计算,用于了解系统使用趋势

提示

存储使用量显示的是字节数。例如 10485760 表示约 10MB。

文件管理

文件列表

文件管理页面展示系统中所有已分享的文件,支持分页浏览和搜索。

列表信息包括:

  • 文件 ID
  • 提取码(code)
  • 文件名前缀(prefix)
  • 文件后缀(suffix)
  • 文件大小
  • 创建时间
  • 过期时间
  • 剩余下载次数

搜索文件

使用搜索功能可以快速找到特定文件:

  1. 在搜索框中输入关键词
  2. 系统会根据文件名前缀(prefix)进行模糊匹配
  3. 搜索结果实时更新

搜索示例:

  • 输入 report 可以找到所有文件名包含 "report" 的文件
  • 输入 .pdf 可以找到所有 PDF 文件(如果文件名包含此字符串)

分页浏览

文件列表支持分页显示:

参数默认值说明
page1当前页码
size10每页显示数量

删除文件

管理员可以删除任意文件:

  1. 在文件列表中找到要删除的文件
  2. 点击删除按钮
  3. 确认删除操作

警告

删除操作不可恢复!文件将从存储后端永久删除,同时删除数据库中的记录。

删除流程:

  1. 系统首先从存储后端(本地/S3/OneDrive 等)删除实际文件
  2. 然后从数据库中删除文件记录
  3. 删除后,对应的提取码将失效

下载文件

管理员可以直接下载任意文件:

  1. 在文件列表中找到目标文件
  2. 点击下载按钮
  3. 文件将通过浏览器下载

对于文本分享,系统会直接返回文本内容而不是下载文件。

修改文件信息

管理员可以修改已分享文件的部分信息:

可修改字段说明
code提取码(必须唯一,不能与其他文件重复)
prefix文件名前缀
suffix文件后缀名
expired_at过期时间
expired_count剩余下载次数

修改提取码:

原提取码:abc123
新提取码:myfile2024

注意

修改提取码时,系统会检查新提取码是否已被使用。如果已存在相同的提取码,修改将失败。

本地文件管理

除了管理已分享的文件,管理面板还提供了本地文件管理功能,用于管理 data/local 目录中的文件。

查看本地文件

本地文件列表显示 data/local 目录中的所有文件:

信息说明
文件名文件的完整名称
创建时间文件的创建时间
文件大小文件大小(字节)

分享本地文件

可以将本地文件快速分享:

  1. 在本地文件列表中选择要分享的文件
  2. 设置过期方式和过期值
  3. 点击分享按钮
  4. 系统生成提取码

分享参数:

参数说明
filename要分享的文件名
expire_style过期方式(day/hour/minute/forever/count)
expire_value过期值(天数/小时数/分钟数/下载次数)

删除本地文件

可以删除 data/local 目录中的文件:

  1. 在本地文件列表中找到要删除的文件
  2. 点击删除按钮
  3. 确认删除

使用场景

本地文件管理功能适用于:

  • 批量上传文件到服务器后进行分享
  • 管理通过其他方式上传到服务器的文件
  • 清理不需要的本地文件

系统设置

查看配置

在系统设置页面可以查看当前所有配置项的值。配置项按类别分组显示:

  • 基础设置(站点名称、描述等)
  • 上传设置(文件大小限制、频率限制等)
  • 存储设置(存储类型、路径等)
  • 主题设置(主题选择、透明度等)
  • 安全设置(管理员密码、错误限制等)

修改配置

管理员可以通过管理面板修改大部分配置:

  1. 进入系统设置页面
  2. 找到要修改的配置项
  3. 输入新的值
  4. 点击保存按钮

可修改的配置项:

类别配置项示例
基础设置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"
}

响应:

json
{
    "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
}

常见问题

忘记管理员密码

如果忘记了管理员密码,可以通过以下方式重置:

  1. 停止 FileCodeBox 服务
  2. 使用 SQLite 工具打开 data/filecodebox.db
  3. 查询 keyvalue 表中 key='settings' 的记录
  4. 修改 JSON 中的 admin_token
  5. 重启服务
sql
-- 查看当前配置
SELECT * FROM keyvalue WHERE key = 'settings';

-- 或者删除配置,恢复默认密码
DELETE FROM keyvalue WHERE key = 'settings';

文件删除失败

如果删除文件时出现错误,可能的原因:

  1. 存储后端连接失败:检查存储配置是否正确
  2. 文件已不存在:文件可能已被手动删除
  3. 权限不足:检查存储目录的写入权限

配置修改不生效

如果修改配置后没有生效:

  1. 检查是否点击了保存按钮
  2. 刷新页面查看配置是否已保存
  3. 检查浏览器控制台是否有错误信息
  4. 确认配置值的格式是否正确(如数字类型不要输入字符串)

下一步

基于 LGPL-3.0 license 发布