# Apifox 指南 —— 门户上传网关 - baseURL: `http://localhost:8080` - 请求头: - `Authorization: Bearer `(先调用登录接口获取 token) ## 环境与前置 1. 登录获取 token - POST /login(或项目登录接口) - Body: { "username": "admin", "password": "123456" } - 断言:`code == 200`,保存 `data.token` 至环境变量 `token` 2. 创建“上传网关”接口集合(multipart/form-data) - 统一路径:`/portal/upload/oss` - 请求头:`Authorization: Bearer {{token}}` - 表单:`file`(binary) - Query 或 Form-Data:`scene`、`dir`、`publicUrl`(scene 大小写不敏感,支持 library.pdf 或 library_pdf) ## 用例 1:失物招领图片 - 目的:验证场景 `lostfound.image` 的类型与大小校验 - 请求: - POST /portal/upload/oss - Headers: Authorization: Bearer {{token}} - Query: scene=lostfound.image, dir=lostfound, publicUrl=true(或将 scene 放入 Form-Data 作为文本项) - Form: file=选择一张 1MB 以内的 png - 断言: - 状态码 200 - 响应 `code == 200` - `data.url` 存在且以 http(s) 开头 - 常见失败: - 非图片类型或超过 2MB → 期望返回 `400` 与明确错误信息 ## 用例 2:图书馆 PDF - 目的:验证场景 `library.pdf` 的扩展名与 100MB 上限 - 请求: - POST /portal/upload/oss - Query: scene=library.pdf(或 Form-Data: scene=library.pdf), dir=library/pdf, publicUrl=true - Form: file=选择一个 2~5MB 的 pdf - 断言:`code == 200`,`data.url` 存在 ## 用例 3:课程资源压缩包 - 目的:验证场景 `resource.archive` 的压缩包白名单 - 请求: - POST /portal/upload/oss - Query: scene=resource.archive, dir=resource, publicUrl=true - Form: file=选择 zip/rar/7z/tar/gz/bz2/xz 中的一种 - 断言:`code == 200` ## 用例 4:非法扩展名 - 目的:确保策略拒绝不支持的类型 - 请求: - POST /portal/upload/oss - Query: scene=resource.archive - Form: file=选择一个 .txt - 断言: - `code == 400` - `msg` 包含“不支持的文件类型” ## 数据库/日志手动校验(可选) - 步骤: - 通过后端日志或数据库审计记录(若有)检查上传操作人与目标路径 ## 常见失败点与处理 - 401 未授权:确认 token 是否正确携带 - 400 参数错误:检查 scene 是否匹配、文件类型/大小是否满足要求 - 500 服务器错误:查看后端日志(OSS 凭据与网络)