文件管理服务接口
版本记录
版本号 | 日期 | 修改内容 |
---|---|---|
v0.12.2 | 2024-08-30 | 修复已知问题 |
文件管理
上传文件
接口地址
/v1/file/upload
请求方式
POST
请求数据类型
multipart/form-data
响应数据类型
application/json
请求参数
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
file | 上传的文件流 | form-data | true | MultipartFile | 上传的文件 |
account | 用户账号 | false | string | 非必传(具体提供时间及应用需后续讨论) | |
appCode | 应用编号 | false | string | 非必传(具体提供时间及应用需后续讨论) | |
appName | 应用名称 | false | string | 非必传(具体提供时间及应用需后续讨论) | |
coverIfExist | 是否覆盖 | false | boolean | 非必传,默认 false 不覆盖,同名上传时会在文件名称前拼接当前时间的 yyyyMMddHHmmssSSS 格式 | |
describe | 文件描述 | false | string | 非必传,上传文件的描述 | |
fileDirectory | 文件目录 | false | string | 非必传(具体提供时间及应用需后续讨论) | |
fileType | 文件类型(doc-文档,pic-图片,video-视频,zip-压缩包) | false | string | 非必传,文件类型支持 doc(docx、pdf、txt、xlsx、md、pptx)、pic(jpg、png、jpeg、ico、webp、svg)、video(mp4、mp3)、zip(zip、rar、gz、7z) | |
moduleName | 模块名称 | false | string | 非必传(具体提供时间及应用需后续讨论) | |
userName | 用户名 | false | string | 非必传(具体提供时间及应用需后续讨论) |
响应参数
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
data | 返回参数 | Object | |
code | 状态码 | integer(int32) | integer(int32) |
message | 响应消息 | string | |
timestamp | 响应时间戳 | integer(int64) | integer(int64) |
响应示例
{
"code": 0,
"message": "上传文件成功",
"data": {
"downLoadPath": "/opt/deploy/glusterfs-file/20230710182713292覆盖test.txt",
"id": "0c2c288fd2bf4fe0a982b14435e68ac9",
"previewPath": "/upload/20230710182713292覆盖test.txt",
"type": "doc"
},
"timestamp": 1688984833313
}
下载文件
接口地址
/v1/file/download
请求方式
GET
请求数据类型
application/x-www-form-urlencoded
响应数据类型
application/octet-stream
请求参数
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | 备注 |
---|---|---|---|---|---|---|
fulPath | 下载全路径 | Params | true | String | 下载全路径,从关系库查出 | |
offset | 起始位置 | false | String | 从 offset 开始获取文件数据,默认为 0,即文件起始位置,非必传(具体提供时间及应用需后续讨论) | ||
length | 长度 | false | String | 从 offset 开始获取 length 长度的数据,默认整个文件长度,非必传(具体提供时间及应用需后续讨论) |
响应参数
如果下载失败,如文件不存在时,响应的数据类型为 Appllication/json
如果下载成功,响应的数据类型为application/octet-stream
查询文件
接口地址
/v1/file/findAll
请求方式
POST
请求数据类型
application/json
响应数据类型
application/json
请求参数
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
fileName | 文件名称 | body | true | string | 如果需要模糊匹配,需要使用%{key}% |
请求示例
{
"fileName": "%qwer%"
}
响应参数
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
data | 返回参数 | Object[] | |
code | 状态码 | integer(int32) | integer(int32) |
message | 响应消息 | string | |
timestamp | 响应时间戳 | integer(int64) | integer(int64) |
响应示例
示例如下
{
"code": 0,
"message": "查询成功",
"data": [
{
"account": null,
"appCode": null,
"appName": null,
"businessId": null,
"businessStore": null,
"createTime": "2023-06-26 18:18:04",
"describe": null,
"downloadPath": "/opt/deploy/glusterfs-file/qwer1234#db#V20230622163840#all.tar.gz.gz",
"fileDirectory": "D:\test\model\qwer1234#db#V20230622163840#all.tar.gz.gz",
"fileName": "qwer1234#db#V20230622163840#all.tar.gz.gz",
"fileSize": 10,
"fileType": "zip",
"id": "f849b0dcc81e4820ae7cd795a2d23718",
"moduleName": null,
"previewPath": "/upload/qwer1234#db#V20230622163840#all.tar.gz.gz",
"updateTime": "2023-06-26 18:18:04",
"updateUser": null,
"userName": null
},
{
"account": null,
"appCode": null,
"appName": null,
"businessId": null,
"businessStore": null,
"createTime": "2023-06-26 18:18:45",
"describe": null,
"downloadPath": "/opt/deploy/glusterfs-file/20230626181844997qwer1234#db#V20230622163840#all.tar.gz.gz",
"fileDirectory": "D:\test\model\qwer1234#db#V20230622163840#all.tar.gz.gz",
"fileName": "20230626181844997qwer1234#db#V20230622163840#all.tar.gz.gz",
"fileSize": 10,
"fileType": "zip",
"id": "592f7ed73a4044e4a0fd5be9d7a01ccc",
"moduleName": null,
"previewPath": "/upload/20230626181844997qwer1234#db#V20230622163840#all.tar.gz.gz",
"updateTime": "2023-06-26 18:18:45",
"updateUser": null,
"userName": null
}
],
"timestamp": 1687852153390
}
删除文件
接口地址
/v1/file/delete
请求方式
POST
请求数据类型
application/json
响应数据类型
application/json
请求参数
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
fulPath | 文件路径 | body | true | string |
请求示例
{
"fulPath": "/opt/deploy/glusterfs-file/20230620024140622aaa.zip"
}
响应参数
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
code | 状态码 | integer(int32) | integer(int32) |
message | 响应消息 | string | |
timestamp | 响应时间戳 | integer(int64) | integer(int64) |
响应示例
{
"code": 0,
"message": "删除成功",
"timestamp": 1687852860195
}
根据文件 Id 批量下载文件
接口地址
/v1/file/batch/download
请求方式
POST
请求数据类型
application/json
响应数据类型
application/octet-stream
请求参数
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
compressType | 批量下载文件的压缩方式 | body | false | String | 目前未使用,后期可以支持 zip,gz 等压缩方式下载 |
fileId | 待下载文件 id 列表 | body | true | String[] | 必传。目前只支持单个文件下载。如果传多个 id,会随机下载其中一个文件 |
请求示例
{
"compressType": "zip",
"fileId": ["xxxxxxxxxx"]
}
响应参数
文件下载
根据业务 id 及模块名称查询文件列表
接口地址
/v1/file/find
请求方式
POST
请求数据类型
application/json
响应数据类型
application/json
请求参数
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
businessId | 业务 id | body | false | string | 与 moduleName 都为空时,返回列表为空 |
moduleName | 模块名称 | body | false | string | 与 businessId 都为空时,返回列表为空 |
businessStore | 业务存储表 | body | false | string |
请求示例
{
"businessId": "hsm-os",
"moduleName": "db",
"businessStore":""
}
响应参数
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
data | 返回参数 | Object[] | |
code | 状态码 | integer(int32) | integer(int32) |
message | 响应消息 | string | |
timestamp | 响应时间戳 | integer(int64) | integer(int64) |
响应示例
示例如下
{
"code": 0,
"message": "查询成功",
"data": [
{
"account": null,
"appCode": null,
"appName": null,
"businessId": null,
"businessStore": null,
"createTime": "2023-06-26 18:18:04",
"describe": null,
"downloadPath": "/opt/deploy/glusterfs-file/qwer1234#db#V20230622163840#all.tar.gz.gz",
"fileDirectory": "D:\test\model\qwer1234#db#V20230622163840#all.tar.gz.gz",
"fileName": "qwer1234#db#V20230622163840#all.tar.gz.gz",
"fileSize": 10,
"fileType": "zip",
"id": "f849b0dcc81e4820ae7cd795a2d23718",
"moduleName": null,
"previewPath": "/upload/qwer1234#db#V20230622163840#all.tar.gz.gz",
"updateTime": "2023-06-26 18:18:04",
"updateUser": null,
"userName": null
}
],
"timestamp": 1687852153390
}
绑定业务及模块与文件列表关系
接口地址
/v1/file/save
请求方式
POST
请求数据类型
application/json
响应数据类型
application/json
请求参数
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
businessId | 业务 id | body | true | String | |
moduleName | 模块名称 | body | true | String | |
fileId | 待绑定的文件 id 列表 | body | true | String[] | 如果 fileId 为空,则会删除指定条件下的所有文件 |
account | 操作人账号 | body | false | String | |
appCode | 应用编号 | body | false | String | |
appName | 应用名称 | body | false | String | |
businessStore | 业务表 | body | false | String | |
describe | 文件描述 | body | false | String | |
userName | 用户名 | body | false | String |
请求示例
{
"account":"10005",
"businessId":"103",
"fileId":[
"xxxxx"
],
"moduleName":"工艺编排",
"appCode":"E10066",
"appName":"医药审计",
"businessStore":"tb_mdesen",
"describe":"",
"userName":"user01"
}
响应参数
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
data | 返回参数 | Object[] | |
code | 状态码 | integer(int32) | integer(int32) |
message | 响应消息 | string | |
timestamp | 响应时间戳 | integer(int64) | integer(int64) |
响应示例
// 保存成功示例
{
"code": 0,
"message": "上传文件成功",
"data": [],
"timestamp": 1688984833313
}
// 保存失败示例
{
"code": -1,
"message": "操作错误",
"data": [// 返回文件不存在的id列表
"14390630c8c54da79422b99b2033df73"
],
"timestamp": 1693376986873
}
文件批量删除
接口功能
根据条件批量删除指定文件列表。
URL | /v1/file/batch/delete |
---|---|
http 请求方式 | post |
请求数据类型 | application/json |
请求参数
说明:businessId, fileId,moduleName 这三个字段不能同时为空
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
businessId | 业务 id | body | false | String | 与 moduleName、fileId 不能同时为空 |
businessStore | 业务存储表 | body | false | String | |
fileId | 文件 ID | body | false | array | 与 moduleName、businessId 不能同时为空 |
moduleName | 模块 id | body | false | string | 与 businessId、fileId 不能同时为空 |
请求示例
{
"businessId": "",
"businessStore": "",
"fileId": [],
"moduleName": ""
}
响应参数
参数名称 | 参数类型 | 类型 | 备注 |
---|---|---|---|
message | 响应消息 | String | |
code | 响应状态 | Integer | |
timestamp | 响应时间 | Long |
示例介绍
{
"code": 0,
"message": "删除成功",
"timestamp": 1682407471154
}