大文件管理接口

版本记录

版本号日期修改内容
v0.12.22024-08-30修复已知问题

大文件管理

创建大文件上传记录

URL/bigfile/v1/create
http 请求方式post
请求数据类型application/json

请求参数

参数名称参数说明请求类型是否必须数据类型备注
fileName文件名称bodytrueString
fileMd5文件 MD5bodytrueString
account创建人bodyfalsestring
fileType文件类型bodyfalsestring
fileSize文件大小bodytrueLong
specDir指定上传路径bodyfalsestring

请求示例

{
  "account": "czwtest",
  "fileMd5": "0b62cb181a31b22f5200308df7be3e2f",
  "fileName": "soft.zip",
  "fileSize": 242387287,
  "fileType": "zip",
  "specDir": "/mytesst"
}

响应参数

参数名称参数类型类型备注
message响应消息String
code响应状态Integer
timestamp响应时间Long

示例介绍

示例如下

//文件大小超过上限时的响应参数
{
  "code": -1,
  "message": "文件大小不能超过: 1073741824 字节",
  "timestamp": 1695353204759
}

//需要上传文件的响应示例
{
  "code": 0,
  "message": "操作成功",
  "data": {
    "file": null,
    "fileExist": false,
    "fileId": "b2493a8f05dc42b4809fa30e2fef246f"
  },
  "timestamp": 1695206000519
}

//文件已经存在,不需要上传文件的示例
{
  "code": 0,
  "message": "操作成功",
  "data": {
    "file": { // 如果文件已经存在,则返回已经存在的文件信息
      "downLoadPath": "/usr/local/hsm-os/data/file-svc/soft.zip", // 文件下载路径
      "id": "b2493a8f05dc42b4809fa30e2fef246f", //文件id
      "previewPath": "/upload/soft.zip", //文件预览路径
      "type": "zip" //文件类型
    },
    "fileExist": true, // 文件是否已经存在。true代表文件已经存在,false代表文件不存在
    "fileId": null
  },
  "timestamp": 1695206000519
}

大文件分片校验

URL/bigfile/v1/chunk/skip
http 请求方式post
请求数据类型application/json

请求参数

参数名称参数说明请求类型是否必须数据类型备注
chunkNumber分片编号bodytrueString
fileChunkMd5分片 MD5bodytrueString
fileId文件 idbodytrueString

请求示例

{
  "chunkNumber": 1,
  "fileChunkMd5": "",
  "fileId": ""
}

响应参数

参数名称参数类型类型备注
message响应消息String
code响应状态Integer
timestamp响应时间Long

示例介绍

//分片已经存在,不需要上传
{
  "code": 0,
  "message": "操作成功",
  "data": true,
  "timestamp": 1695206000519
}

//分片不存在,需要上传
{
  "code": 0,
  "message": "操作成功",
  "data": false,
  "timestamp": 1695206000519
}

大文件分片上传

URL/bigfile/v1/upload/chunk
http 请求方式post
请求数据类型multipart/form-data

请求参数

参数名称参数说明请求类型是否必须数据类型schema
fileChunkMd5分片 md5querytruestring
chunkNumber分片编号querytrueinteger(int32)
fileId文件 idquerytruestring
filefileformDatatruefile

响应参数

参数名称参数类型类型备注
message响应消息String
code响应状态Integer
timestamp响应时间Long

示例介绍

//上传成功的响应
{
	"code": 0,
	"message": "上传文件成功",
	"timestamp": 0
}

//上传错误的响应
{
	"code": -1,
	"message": "分片MD5值与上传分片内容不匹配",
	"timestamp": 0
}

大文件合并

URL/bigfile/v1/merge
http 请求方式post
请求数据类型application/json

请求参数

参数名称参数说明请求类型是否必须数据类型schema
account账号falsestring
appCodefalsestring
appNamefalsestring
businessIdfalsestring
businessStorefalsestring
fileId文件 idtruestring
fileName文件名称falsestring
moduleNamefalsestring

请求示例

{
  "account": "",
  "appCode": "",
  "appName": "",
  "businessId": "",
  "businessStore": "",
  "fileId": "",
  "fileName": "",
  "moduleName": ""
}

响应参数

参数名称参数类型类型备注
message响应消息String
code响应状态Integer
timestamp响应时间Long

示例介绍

// 分片合并成功
{
  "code": 0,
  "message": "新增成功",
  "data": {
    "file": { // 文件合并成功,返回文件基本信息
      "downLoadPath": "/usr/local/hsm-os/data/file-svc/soft.zip", // 文件下载路径
      "id": "b2493a8f05dc42b4809fa30e2fef246f", //文件id
      "previewPath": "/upload/soft.zip", //文件预览路径
      "type": "zip" //文件类型
    },
    "msg": ""
  },
  "timestamp": 1695206000519
}

// 合并失败
{
	"code": -1,
	"message": "文件合并失败,文件不存在!",
	"timestamp": 0
}

查询文件信息

URL/bigfile/v1/find
http 请求方式post
请求数据类型application/json

请求参数

参数名称参数说明请求类型是否必须数据类型schema
fileId文件 idtruestring

请求示例

{
  "fileId": ""
}

响应参数

参数名称参数类型类型备注
message响应消息String
code响应状态Integer
timestamp响应时间Long

示例介绍

示例如下

{
  "code": -1,
  "message": "请求数据为空",
  "timestamp": 1695207616226
}

{
  "code": 0,
  "message": "查询成功",
  "data": {
    "account": null,
    "appCode": null,
    "appName": null,
    "businessId": null,
    "businessStore": null,
    "createTime": "2023-09-20 18:03:25",
    "describe": null,
    "downloadPath": "/usr/local/hsm-os/data/file-svc/soft.zip",
    "fileDirectory": null,
    "fileName": "soft.zip",
    "fileSize": 242387287,
    "fileType": "zip",
    "id": "b2493a8f05dc42b4809fa30e2fef246f",
    "moduleName": null,
    "previewPath": "/upload/soft.zip",
    "updateTime": null,
    "updateUser": null,
    "userName": null
  },
  "timestamp": 1695207637336
}

查询文件上传进度

URL/bigfile/v1/progress
http 请求方式post
请求数据类型application/json

请求参数

参数名称参数说明请求类型是否必须数据类型schema
fileId文件 idtruestring

请求示例

{
  "fileId": ""
}

响应参数

参数名称参数类型类型备注
message响应消息String
code响应状态Integer
timestamp响应时间Long

示例介绍

示例如下

{
  "code": 0,
  "message": "查询成功",
  "data": {
    "file": {},
    "progress": 50
  },
  "timestamp": 1695208067538
}

{
  "code": 0,
  "message": "查询成功",
  "data": {
    "file": { // 如果文件上传成功,查询进度,返回文件信息
      "downLoadPath": "/usr/local/hsm-os/data/file-svc/soft.zip",
      "id": "b2493a8f05dc42b4809fa30e2fef246f",
      "previewPath": "/upload/soft.zip",
      "type": "zip"
    },
    "progress": 100 // 文件已经上传成功,进度100
  },
  "timestamp": 1695208067538
}

{
  "code": -1,
  "message": "请求数据为空",
  "timestamp": 1695207616226
}

大文件下载

URL/bigfile/v1/download
http 请求方式post
请求数据类型application/json

请求参数

参数名称参数说明请求类型是否必须数据类型schema
chunkSizetrueinteger(int32)本次下载的分片大小。单位是 B。建议使用 524288B(即 512K),暂时限制分片大小不超过 104857600‬(即 100M)
fileIdtruestring文件 id
starttrueinteger(int64)下载文件的起始字节位置,从 0 开始

请求示例

{
  "chunkSize": 524288,
  "fileId": "",
  "start": 0
}

响应参数

暂无