Skip to content

上传文件 (Upload)

Method: POST

Endpoint:

/api/v1/files

请求参数

  • Content-Type: multipart/form-data
  • 表单中必须且只能包含一个文件
  • 文件大小必须严格小于 10 MiB
  • 服务端计算文件内容的 SHA-256 作为 hash
  • 同一内容重复上传不会产生新记录,直接返回已有 fileId

表单字段:

file=<二进制文件>

响应示例

首次上传返回 201:

{
  "data": {
    "fileId": 1,
    "hash": "623099066de4cbef710c0f36302f31f49e9e607654f879ace5cd536ab16833b7",
    "uTime": 1794208350
  }
}

重复上传同一内容返回 200,结构相同。

fileId 用于 检查试卷。

存储

文件按 hash 分级保存:

data/files/ab/cd/abcdef...

数据库只保存 files_id / hash / u_time,不保存原始文件名。

错误

  • 400 / INVALID_FORM_DATA:不是合法的 multipart 表单
  • 400 / INVALID_FILE_COUNT:文件数量不是 1
  • 401 / UNAUTHORIZED:未鉴权
  • 413 / FILE_TOO_LARGE:文件大小达到或超过 10 MiB
  • 503 / AUTH_NOT_CONFIGURED:未配置 EXAM_API_TOKEN