Table of Contents
4.8 上传文件【未授权拦截通过,待登录态联调】
POST /tieup/api/v1/files
请求类型:multipart/form-data
请求体示例:
POST /tieup/api/v1/files
Content-Type: multipart/form-data
file=@demo.png
business_module=profile
business_id=10001
聊天素材上传示例:
POST /tieup/api/v1/files
Content-Type: multipart/form-data
file=@chat-image.png
business_module=chat
business_id=10001
请求字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
file |
file | 是 | 上传文件,支持图片、视频、语音;允许 MIME 和大小限制以后端七牛配置为准 |
business_module |
string | 是 | 业务模块标识,最大 50 字符,如 profile、question、benefit、audit、chat;当前服务端不限制固定枚举 |
business_id |
string | 否 | 业务 ID |
上传成功后写入 tieup_upload_record,返回 upload_no、storage_provider、object_key、url、mime_type、file_hash、size_byte。
业务模块说明:
| business_module | 含义 |
|---|---|
profile |
用户或艺人资料相关素材,如头像、相册、个人介绍音频等 |
question |
付费提问、追问、回答相关附件 |
benefit |
福利配置、福利展示或福利兑换相关素材 |
audit |
内容审核相关素材或审核补充材料 |
chat |
聊天消息相关素材,如图片、语音、视频消息文件 |
鉴权:需要 Authorization: Bearer <access_token>。
响应字段:
| 字段 | 类型 | 说明 |
|---|---|---|
record_id |
integer | 上传记录 ID |
upload_no |
string | 上传流水号 |
storage_provider |
string | 存储供应商 |
bucket |
string | 七牛存储空间 |
object_key |
string | 存储对象 Key |
url |
string | 资源访问 URL |
origin_name |
string | 原始文件名 |
mime_type |
string | 服务端识别的 MIME 类型 |
file_ext |
string | 文件扩展名,仅用于记录展示 |
file_hash |
string | 文件 hash |
size_byte |
integer | 文件大小,单位字节 |
business_module |
string | 业务模块 |
business_id |
string | 业务 ID |
user_id |
integer/null | 上传用户 ID |
status |
integer | 上传记录状态:1=正常,2=删除,3=上传失败 |
响应示例:
{
"code": 200,
"message": "成功",
"data": {
"record_id": 10001,
"upload_no": "UP202606170001",
"storage_provider": "qiniu",
"bucket": "tieup-public",
"object_key": "2026-06-17/550e8400-e29b-41d4-a716-446655440000.png",
"url": "https://cdn.example.com/2026-06-17/550e8400-e29b-41d4-a716-446655440000.png",
"origin_name": "demo.png",
"mime_type": "image/png",
"file_ext": "png",
"file_hash": "9e107d9d372bb6826bd81d3542a419d6",
"size_byte": 123456,
"business_module": "profile",
"business_id": "10001",
"user_id": 20001,
"status": 1
}
}
说明:
- 平台上传统一使用七牛服务端直传;七牛配置缺失、禁用或上传失败时直接返回业务错误,不再回退本地存储。
- 数据库只保存七牛对象路径(例如
/2026-06-17/demo.png),接口响应中的url仍按当前七牛cdn_domain/domain + schema动态返回完整地址。切换七牛域名无需批量修改业务数据。 - 第三方回调返回的审核证据、外部媒体等 URL 按回调原值保存,不经过七牛路径化。
- 当前默认配置示例:允许
image/jpeg、image/png、image/webp、video/mp4、audio/mpeg、audio/wav、audio/aac;大小限制示例为图片 10MB、视频 200MB、语音 50MB。后台调整七牛配置后,APP 上传限制同步变化。 - 服务端按文件真实 MIME 校验,不使用写死扩展名白名单;扩展名只作为上传记录字段保存。
- 上传记录按
upload_no或storage_provider + bucket + object_key幂等写入;重复上传同一对象时返回已有记录并更新业务上下文。 - 测试状态:已完成七牛唯一上传、路径化写库、动态域名读取和 PHP 语法检查,待真实七牛配置联调。