POST /api/v1/media
使用 multipart/form-data 上传单个文件。文件名以 ULID 重命名后存储,原始文件名保留在 originalFileName 字段。
请求
| 字段 | 类型 | 必填 | 约束 | 说明 |
|---|---|---|---|---|
file |
file |
是 | 默认最大 10MB;默认仅允许 image/jpeg、image/png、image/webp、image/gif |
文件数据 |
文件类型不信任文件扩展名或客户端 Content-Type,服务端会读取文件头并使用 Apache Tika 识别真实 MIME 类型。大小限制可通过
STORAGE_MAX_FILE_SIZE / MULTIPART_MAX_FILE_SIZE 等环境变量调整,允许类型可通过 app.storage.allowed-mime-types 配置。
响应
{
"code": 200,
"message": "success",
"data": {
"id": 84329501234567890,
"url": "https://api.floriax.cn/api/v1/media/202605/01ARZ3NDEKTSV4RRFFQ69G5FAV.jpg"
},
"requestId": "...",
"timestamp": 1747123456789
}
| 字段 | 类型 | 说明 |
|---|---|---|
id |
number |
媒体文件 ID |
url |
string |
文件访问 URL,公开可访问 |
去重
同一用户上传 MD5 相同的文件时,直接返回已有记录(200 OK),不会重复存储。客户端可将此行为视为幂等上传。
错误
| HTTP 状态 | code | 说明 |
|---|---|---|
| 400 | 5101 | 上传空文件 |
| 400 | 5102 | 文件超过大小限制 |
| 400 | 5103 | 文件类型不在允许列表内 |