相册
相册的创建、更新、列表与删除。
相册是文件的逻辑分组。每个用户可以拥有多个相册,文件通过 album_id 归属到某个相册。
说明
相册是可选的 —— 上传时不指定 album_id 的文件不归属任何相册。
相册对象结构
interface Album {
id: string
user_id: string
name: string
description: string
is_public: boolean // 公开相册可被匿名访问
cover_url: string | null
file_count: number // 动态计算,非数据库列
created_at: string
updated_at: string
}
创建相册
Endpoint
POST · /api/v1/albums · 需认证
请求
{
"name": "旅行照片",
"description": "2026 春季东京",
"is_public": false
}
| 字段 | 约束 |
|---|---|
name | 必填,最长 100 字符 |
description | 可选,最长 500 字符 |
is_public | 默认 false |
响应
{
"code": 0,
"data": {
"id": "album-uuid",
"user_id": "user-uuid",
"name": "旅行照片",
"description": "2026 春季东京",
"is_public": false,
"created_at": "2026-04-17T10:00:00Z",
"updated_at": "2026-04-17T10:00:00Z"
}
}
相册列表
Endpoint
GET · /api/v1/albums · 需认证
返回当前用户的全部相册,每条附带 file_count。
查询参数
| 参数 | 默认 | 说明 |
|---|---|---|
page | 1 | 页码 |
size | 20 | 每页数量(最大 100) |
响应
{
"code": 0,
"data": {
"items": [
{
"id": "album-uuid",
"name": "旅行照片",
"description": "2026 春季东京",
"is_public": false,
"file_count": 24,
"created_at": "2026-04-17T10:00:00Z",
"updated_at": "2026-04-17T10:00:00Z"
}
],
"total": 5,
"page": 1,
"size": 20
}
}
更新相册
Endpoint
PUT · /api/v1/albums/:id · 需认证
所有字段可选,仅更新传入的字段。
请求
{
"name": "2026 春·东京",
"is_public": true
}
错误
| Code | 条件 |
|---|---|
40300 | 非相册所有者 |
40400 | 相册不存在 |
删除相册
Endpoint
DELETE · /api/v1/albums/:id · 需认证
删除相册不会删除其中的文件 —— 相关文件的 album_id 被置为 null,文件本身仍然存在。
向相册添加文件
相册 ID 在上传时传入即可:
POST /api/v1/upload
Authorization: Bearer YOUR_TOKEN
Content-Type: multipart/form-data
file=<file>
album_id=album-uuid
现有文件若需要改变归属,目前建议通过后台操作;后续版本会暴露专用的「移动到相册」接口。