Object Storage (S3/MinIO/OSS) Skill
Goal
把 AI 生成资产(视频/封面/分镜 JSON 等)落到对象存储,返回稳定可访问 URL,并支持:
- •bucket/key 命名规范
- •public/private 访问策略
- •预签名 URL(private 场景)
- •生命周期管理(TTL/归档/清理)
Use when
- •从 Mock URL 切换到真实文件产出
- •worker 输出是本地文件,需要上传
- •需要支持 MinIO(本地)与 OSS/S3(线上)
Inputs
- •资产类型:video/cover/script/frames
- •workId/taskId/userId
- •contentType、文件大小、校验(可选)
Outputs
- •
StorageClient(upload/getUrl/presign) - •key 规范 + URL 生成策略
- •资产元数据写回 DB(videoUrl/coverUrl)
Conventions
Object key naming
建议:
- •
animegen/{env}/{yyyy}/{MM}/{dd}/{workId}/{type}.{ext}例: - •
animegen/dev/2026/02/14/ab12.../video.mp4
Access
- •MVP:public read(简单)
- •进阶:private + presigned URL(更安全)
Provider abstraction
- •service/worker 只依赖
StorageClient接口 - •MinIO/S3/OSS 各自实现适配器
Workflow
- •worker 产出文件(或拿到 provider 返回的 bytes/url)
- •上传到对象存储(upload)
- •得到可访问 URL(public 或 presigned)
- •写回 DB:work.videoUrl/coverUrl
- •(可选)清理本地临时文件
Checklist
- • key 命名稳定且不冲突
- • URL 可读可访问(最少做 HEAD/GET 验证)
- • contentType 正确(video/mp4、image/jpeg)
- • 上传失败可重试(幂等 key)