Resource Service
Resource Service 是临时媒体资源的唯一所有者。当前只接受 JPEG、PNG 和 WebP,不提供长期资产存储。
上传校验
- multipart 字段必须名为
file。 - 文件字节数不得超过
MAX_RESOURCE_UPLOAD_BYTES。 - 声明 MIME 必须与 Sharp 识别的内容格式一致。
- 图片宽高必须可读取,像素总数不得超过
MAX_RESOURCE_PIXELS。 - 服务总占用不得超过
RESOURCE_CAPACITY_BYTES。
元数据
上传成功返回:
json
{
"resourceToken": "<43-character-base64url-token>",
"expiresIn": 3000,
"mediaType": "image/png",
"size": 184220,
"width": 1920,
"height": 1080,
"status": "READY"
}Token 由 32 个随机字节编码为 base64url,不包含文件名、路径或业务信息。
公开与内部接口
公开上传和删除通过 Markify API 代理。/internal/v1/resource/* 只允许 API 和 Worker 在私有网络中调用,提供元数据、内容流、批量 finalize、rollback 和 consume。
存储模型
- 文件写入容器 tmpfs。
- 元数据只存在于进程内。
- TTL 固定,读取不续期。
- 服务重启或容器重建后资源允许全部丢失。
- 日志目录是持久化 bind mount,但不能用于恢复资源状态。
健康端点
text
GET /resource/v1/health/live
GET /resource/v1/health/ready