文件管理服务接口

版本记录

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

文件管理

上传文件

接口地址

/v1/file/upload

请求方式

POST

请求数据类型

multipart/form-data

响应数据类型

application/json

请求参数

参数名称参数说明请求类型是否必须数据类型备注
file上传的文件流form-datatrueMultipartFile上传的文件
account用户账号falsestring非必传(具体提供时间及应用需后续讨论)
appCode应用编号falsestring非必传(具体提供时间及应用需后续讨论)
appName应用名称falsestring非必传(具体提供时间及应用需后续讨论)
coverIfExist是否覆盖falseboolean非必传,默认 false 不覆盖,同名上传时会在文件名称前拼接当前时间的 yyyyMMddHHmmssSSS 格式
describe文件描述falsestring非必传,上传文件的描述
fileDirectory文件目录falsestring非必传(具体提供时间及应用需后续讨论)
fileType文件类型(doc-文档,pic-图片,video-视频,zip-压缩包)falsestring非必传,文件类型支持 doc(docx、pdf、txt、xlsx、md、pptx)、pic(jpg、png、jpeg、ico、webp、svg)、video(mp4、mp3)、zip(zip、rar、gz、7z)
moduleName模块名称falsestring非必传(具体提供时间及应用需后续讨论)
userName用户名falsestring非必传(具体提供时间及应用需后续讨论)

响应参数

参数名称参数说明类型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下载全路径ParamstrueString下载全路径,从关系库查出
offset起始位置falseString从 offset 开始获取文件数据,默认为 0,即文件起始位置,非必传(具体提供时间及应用需后续讨论)
length长度falseString从 offset 开始获取 length 长度的数据,默认整个文件长度,非必传(具体提供时间及应用需后续讨论)

响应参数

如果下载失败,如文件不存在时,响应的数据类型为 Appllication/json

如果下载成功,响应的数据类型为application/octet-stream

查询文件

接口地址

/v1/file/findAll

请求方式

POST

请求数据类型

application/json

响应数据类型

application/json

请求参数

参数名称参数说明请求类型是否必须数据类型备注
fileName文件名称bodytruestring如果需要模糊匹配,需要使用%{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文件路径bodytruestring

请求示例

{
  "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批量下载文件的压缩方式bodyfalseString目前未使用,后期可以支持 zip,gz 等压缩方式下载
fileId待下载文件 id 列表bodytrueString[]必传。目前只支持单个文件下载。如果传多个 id,会随机下载其中一个文件

请求示例

{
  "compressType": "zip",
  "fileId": ["xxxxxxxxxx"]
}

响应参数

文件下载

根据业务 id 及模块名称查询文件列表

接口地址

/v1/file/find

请求方式

POST

请求数据类型

application/json

响应数据类型

application/json

请求参数

参数名称参数说明请求类型是否必须数据类型备注
businessId业务 idbodyfalsestring与 moduleName 都为空时,返回列表为空
moduleName模块名称bodyfalsestring与 businessId 都为空时,返回列表为空
businessStore业务存储表bodyfalsestring

请求示例

{
  "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业务 idbodytrueString
moduleName模块名称bodytrueString
fileId待绑定的文件 id 列表bodytrueString[]如果 fileId 为空,则会删除指定条件下的所有文件
account操作人账号bodyfalseString
appCode应用编号bodyfalseString
appName应用名称bodyfalseString
businessStore业务表bodyfalseString
describe文件描述bodyfalseString
userName用户名bodyfalseString

请求示例

{
  "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业务 idbodyfalseString与 moduleName、fileId 不能同时为空
businessStore业务存储表bodyfalseString
fileId文件 IDbodyfalsearray与 moduleName、businessId 不能同时为空
moduleName模块 idbodyfalsestring与 businessId、fileId 不能同时为空

请求示例

{
  "businessId": "",
  "businessStore": "",
  "fileId": [],
  "moduleName": ""
}

响应参数

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

示例介绍

{
    "code": 0,
    "message": "删除成功",
    "timestamp": 1682407471154
}