大文件管理接口
版本记录
版本号 | 日期 | 修改内容 |
---|
v0.12.2 | 2024-08-30 | 修复已知问题 |
大文件管理
创建大文件上传记录
URL | /bigfile/v1/create |
---|
http 请求方式 | post |
请求数据类型 | application/json |
请求参数
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 备注 |
---|
fileName | 文件名称 | body | true | String | |
fileMd5 | 文件 MD5 | body | true | String | |
account | 创建人 | body | false | string | |
fileType | 文件类型 | body | false | string | |
fileSize | 文件大小 | body | true | Long | |
specDir | 指定上传路径 | body | false | string | |
请求示例
{
"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 | 分片编号 | body | true | String | |
fileChunkMd5 | 分片 MD5 | body | true | String | |
fileId | 文件 id | body | true | String | |
请求示例
{
"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 | 分片 md5 | query | true | string | |
chunkNumber | 分片编号 | query | true | integer(int32) | |
fileId | 文件 id | query | true | string | |
file | file | formData | true | file | |
响应参数
参数名称 | 参数类型 | 类型 | 备注 |
---|
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 | 账号 | | false | string | |
appCode | | | false | string | |
appName | | | false | string | |
businessId | | | false | string | |
businessStore | | | false | string | |
fileId | 文件 id | | true | string | |
fileName | 文件名称 | | false | string | |
moduleName | | | false | string | |
请求示例
{
"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 | 文件 id | | true | string | |
请求示例
{
"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 | 文件 id | | true | string | |
请求示例
{
"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 |
---|
chunkSize | | | true | integer(int32) | 本次下载的分片大小。单位是 B。建议使用 524288B(即 512K),暂时限制分片大小不超过 104857600(即 100M) |
fileId | | | true | string | 文件 id |
start | | | true | integer(int64) | 下载文件的起始字节位置,从 0 开始 |
请求示例
{
"chunkSize": 524288,
"fileId": "",
"start": 0
}
响应参数
暂无