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 语法检查,待真实七牛配置联调。