统一文件管理系统 API 说明
API Key 认证(开放接口):在请求头中添加 X-API-Key: {your-api-key}
JWT 认证(管理接口):在请求头中添加 Authorization: Bearer {jwt-token}
/api/admin/auth/login管理员登录
{
"username": "admin",
"password": "password"
}{
"token": "jwt-token-string",
"user": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"status": 1,
"lastLoginAt": "2024-01-01T00:00:00.000Z"
}
}/api/admin/auth/meJWT获取当前登录管理员信息
{
"id": 1,
"username": "admin",
"email": "admin@example.com"
}/api/admin/tenantsJWT获取租户列表
/api/admin/tenantsJWT创建租户
{
"name": "My Tenant",
"storageQuota": 10737418240
}/api/admin/tenants/{id}JWT更新租户信息
/api/admin/tenants/{id}JWT删除租户
/api/admin/tenants/{id}/regenerate-keyJWT重新生成 API Key
/api/admin/groupsJWT获取所有分组
/api/admin/groupsJWT创建分组
{
"tenantId": 1,
"name": "Documents",
"description": "My documents"
}/api/admin/groups/{id}JWT更新分组
/api/admin/groups/{id}JWT删除分组
/api/admin/tagsJWT获取所有标签
/api/admin/tagsJWT创建标签
{
"tenantId": 1,
"name": "important",
"color": "#ff0000"
}/api/admin/tags/{id}JWT更新标签
/api/admin/tags/{id}JWT删除标签
/api/admin/filesJWT搜索文件(管理员)
/api/admin/backupsJWT获取备份列表
/api/admin/backupsJWT手动创建备份
/api/admin/backups/{id}JWT删除备份
/api/admin/backups/{id}/downloadJWT下载备份文件
/api/v1/filesAPI Key搜索文件列表
/api/v1/filesAPI Key上传新文件
multipart/form-datafile: (binary) groupId?: string generateThumbnail?: boolean (true/false) thumbnailWidth?: number thumbnailHeight?: number tags?: JSON string of bigint[] changeNote?: string
{
"success": true,
"file": {
"id": "123",
"fileUuid": "uuid-string",
"fileName": "example.jpg",
...
},
"downloadUrl": "https://..."
}/api/v1/files/{uuid}API Key获取文件信息
/api/v1/files/{uuid}API Key更新文件(新版本)
multipart/form-datafile: (binary) fileName?: string contentType?: string groupId?: bigint generateThumbnail?: boolean ...
/api/v1/files/{uuid}API Key删除文件
/api/v1/files/{uuid}/downloadAPI Key (可选)下载文件
/api/v1/files/{uuid}/viewAPI Key (可选)在线查看原图
/api/v1/files/{uuid}/thumbnailAPI Key (可选)获取文件缩略图(图片)
/api/v1/files/{uuid}/versionsAPI Key获取文件版本历史
/api/v1/files/{uuid}/rollback/{versionId}API Key回滚到指定版本
/api/v1/groupsAPI Key获取租户分组列表
/api/v1/groups/{id}API Key获取分组详情
/api/v1/groupsAPI Key创建分组
/api/v1/groups/{id}API Key更新分组
/api/v1/groups/{id}API Key删除分组
/api/v1/tagsAPI Key获取租户标签列表
/api/v1/tags/{id}API Key获取标签详情
/api/v1/tagsAPI Key创建标签
/api/v1/tags/{id}API Key更新标签
/api/v1/tags/{id}API Key删除标签
{
id: BigInt (自增主键)
name: String
apiKey: String (唯一)
isActive: Boolean (默认 true)
storageQuota: BigInt? (存储配额,字节,null 表示无限制)
createdAt: DateTime
updatedAt: DateTime
deletedAt: DateTime? (软删除)
}{
id: BigInt
tenantId: BigInt
name: String
description: String?
createdAt: DateTime
updatedAt: DateTime
deletedAt: DateTime?
}{
id: BigInt
tenantId: BigInt
name: String
color: String?
createdAt: DateTime
updatedAt: DateTime
deletedAt: DateTime?
}{
id: BigInt
tenantId: BigInt
fileUuid: String (UUID, 唯一)
fileName: String
fileSize: BigInt (字节)
contentType: String (MIME类型)
md5Hash: String?
sha256Hash: String?
storagePath: String
groupId: BigInt?
accessCount: BigInt (默认 0)
lastAccessAt: DateTime?
imageWidth: Int? (图片宽度)
imageHeight: Int? (图片高度)
hasThumbnail: Int (默认 0)
thumbnailPath: String?
thumbnailWidth: Int?
thumbnailHeight: Int?
version: Int (默认 1)
rootFileId: BigInt? (版本根文件)
createdAt: DateTime
updatedAt: DateTime
deletedAt: DateTime?
}{
id: BigInt
tenantId: BigInt
rootFileId: BigInt
fileId: BigInt
versionNumber: Int
changeNote: String?
createdAt: DateTime
}{
id: BigInt
backupName: String
backupPath: String
backupSize: BigInt
totalFiles: Int
totalSize: BigInt
backupType: String (auto/manual, 默认 auto)
status: String (pending/running/success/failed, 默认 pending)
errorMessage: String?
createdAt: DateTime
completedAt: DateTime?
}{
id: BigInt
username: String (唯一)
passwordHash: String
email: String?
isActive: Boolean (默认 true)
lastLoginAt: DateTime?
createdAt: DateTime
updatedAt: DateTime
}