dmp-file接口
前端使用引导
1.本地安装(版本号:ISC)
npm install dmp-file --save
2.使用方法
import { uploadFile } from 'dmp-file'
/* @param url 文件服务地址 例如‘http://develop.persagy.com/dmp-file’
@param groupCode 集团编码 例如‘YL’
@param file 文件 例如‘input.files[0]’
@param func 回调函数 默认console.log步骤
* { 回调函数返回值
* msg:'',
* chunkCount:1,
* partNumber:0
* }
*/
uploadFile('http://develop.persagy.com/dmp-file', 'YL', event.target.files[0], func)
后端使用引导
1.引入jar坐标(Maven方式)
<repository>
<id>persagy</id>
<url>http://47.93.132.139:8081/nexus/content/repositories/persagy</url>
</repository>
<dependency>
<groupId>com.persagy</groupId>
<artifactId>dmp-file-starter</artifactId>
<version>1.0.0</version>
</dependency>
2.使用如下实例代码进行文件上传
FileInfo fileInfo = FileInfoCreator.of(groupCode, businessId, appName, fileName);
// 可对fileInfo属性额外配置。如有效期等
FileStorageHelper.uploadFile(fileInfo, inputStream);
3.使用如下实例代码进行文件下载
// 通过文件id获取文件流,当文件url不存在时会抛出系统资源异常的错误
FileStorageHelper.downloadStream(fileId);
或者
// 1.根据文件id获取文件下载地址
FileInfo info = FileStorageHelper.downloadUrl(fileId);
// 2.通过http请求获取文件流
IoUtil.toStream(HttpUtil.downloadBytes(info.getFileDownloadUrl()));
文件管理接口
41001 保存文件信息
接口
http://localhost:8831/dmp-file/file/insert
请求方式
POST请求
RequestHeader
key |
value |
Content-Type |
application/json |
RequestParam(URL中的Path参数)
字段 |
是否必须 |
字段说明 |
userId |
是 |
用户id |
groupCode |
否 |
集团编码 |
projectId |
否 |
项目id |
appId |
否 |
应用id |
参数例子
{
"groupCode": "PG",
"fileName": "major",
"fileType": "专业",
"fileBucket": "Testing",
"filePath":12,
"fileSize":"**",
"businessId":"20210813000000",
"expireDate":"***"
}
字段 |
是否必须 |
字段说明 |
groupCode |
是 |
集团编码:租户 |
fileName |
是 |
文件名称:显示用 |
fileType |
否 |
文件类型:0-文件,1-目录 |
fileBucket |
是 |
文件分组:默认为应用名 |
filePath |
否 |
文件路径:含文件名称 - 对应文件存储路径 |
fileSize |
否 |
文件大小 |
businessId |
否 |
关联业务Id |
expireDate |
否 |
保留期限 |
成功例子
{
"result": "success",
"data": {
"id": "dev_1",
"groupCode": "PG",
"fileName": "major",
"fileType": "专业",
"fileBucket": "Testing",
"filePath":12,
"fileSize":"**",
"businessId":"20210813000000",
"expireDate":"***",
"creationTime": "20210813000000",
"creator": "wdl",
"modifiedTime": "20210813000000",
"modifier": "wdl",
"valid": 1
},
"count": 26
}
字段 |
是否必有 |
字段说明 |
id |
是 |
32位UUID |
groupCode |
是 |
集团编码:租户 |
fileName |
是 |
文件名称:显示用 |
fileType |
是 |
文件类型:0-文件,1-目录 |
fileBucket |
否 |
文件分组:默认为应用名 |
filePath |
是 |
文件路径:含文件名称 - 对应文件存储路径 |
fileSize |
是 |
文件大小 |
businessId |
是 |
关联业务Id |
expireDate |
否 |
保留期限 |
creationTime |
否 |
创建时间,格式为yyyyMMddHHmmss |
creator |
否 |
创建人账号id |
modifiedTime |
否 |
最后更新时间,格式为yyyyMMddHHmmss |
modifier |
否 |
最后更新账号id |
valid |
否 |
有效状态,0-无效,1-有效 |
接口修改记录
操作时间 |
操作 |
操作内容 |
2021年8月17日10:39:56 |
新增 |
新增接口 |
41002 更新文件信息
接口
http://localhost:8831/dmp-file/file/update
请求方式
POST请求
RequestHeader
key |
value |
Content-Type |
application/json |
RequestParam(URL中的Path参数)
字段 |
是否必须 |
字段说明 |
userId |
是 |
用户id |
groupCode |
否 |
集团编码 |
projectId |
否 |
项目id |
appId |
否 |
应用id |
参数例子
{
"id": "dev_1",
"groupCode": "PG",
"fileName": "major",
"fileType": "专业",
"fileBucket": "Testing",
"filePath":12,
"fileSize":"**",
"businessId":"20210813000000",
"expireDate":"***",
"creationTime": "20210813000000",
"creator": "wdl",
"modifiedTime": "20210813000000",
"modifier": "wdl",
"valid": 1
}
字段 |
是否必须 |
字段说明 |
id |
是 |
32位UUID |
groupCode |
是 |
集团编码:租户 |
fileName |
是 |
文件名称:显示用 |
fileType |
否 |
文件类型:0-文件,1-目录 |
fileBucket |
是 |
文件分组:默认为应用名 |
filePath |
否 |
文件路径:含文件名称 - 对应文件存储路径 |
fileSize |
否 |
文件大小 |
businessId |
否 |
关联业务Id |
expireDate |
否 |
保留期限 |
creationTime |
否 |
创建时间,格式为yyyyMMddHHmmss |
creator |
否 |
创建人账号id |
modifiedTime |
否 |
最后更新时间,格式为yyyyMMddHHmmss |
modifier |
否 |
最后更新账号id |
valid |
否 |
有效状态,0-无效,1-有效 |
成功例子
{
"result": "success",
"data": {
"id": "dev_1",
"groupCode": "PG",
"fileName": "major",
"fileType": "专业",
"fileBucket": "Testing",
"filePath":12,
"fileSize":"**",
"businessId":"20210813000000",
"expireDate":"***",
"creationTime": "20210813000000",
"creator": "wdl",
"modifiedTime": "20210813000000",
"modifier": "wdl",
"valid": 1
},
"count": 26
}
字段 |
是否必有 |
字段说明 |
id |
是 |
32位UUID |
groupCode |
是 |
集团编码:租户 |
fileName |
是 |
文件名称:显示用 |
fileType |
是 |
文件类型:0-文件,1-目录 |
fileBucket |
否 |
文件分组:默认为应用名 |
filePath |
是 |
文件路径:含文件名称 - 对应文件存储路径 |
fileSize |
是 |
文件大小 |
businessId |
是 |
关联业务Id |
expireDate |
否 |
保留期限 |
creationTime |
否 |
创建时间,格式为yyyyMMddHHmmss |
creator |
否 |
创建人账号id |
modifiedTime |
否 |
最后更新时间,格式为yyyyMMddHHmmss |
modifier |
否 |
最后更新账号id |
valid |
否 |
有效状态,0-无效,1-有效 |
接口修改记录
操作时间 |
操作 |
操作内容 |
2021年8月17日10:39:56 |
新增 |
新增接口 |
41003 删除文件信息
接口
http://localhost:8831/dmp-file/file/delete
请求方式
POST请求
RequestHeader
key |
value |
Content-Type |
application/json |
RequestParam(URL中的Path参数)
字段 |
是否必须 |
字段说明 |
userId |
是 |
用户id |
groupCode |
否 |
集团编码 |
projectId |
否 |
项目id |
appId |
否 |
应用id |
参数例子
"***"
字段 |
是否必须 |
字段说明 |
id |
是 |
32位UUID |
成功例子
{
"result": "success"
}
接口修改记录
操作时间 |
操作 |
操作内容 |
2021年8月17日10:43:38 |
新增 |
新增接口 |
41004 根据文件id查找文件信息
接口
http://localhost:8831/dmp-file/file/load
请求方式
POST请求
RequestHeader
key |
value |
Content-Type |
application/json |
RequestParam(URL中的Path参数)
字段 |
是否必须 |
字段说明 |
userId |
是 |
用户id |
groupCode |
否 |
集团编码 |
projectId |
否 |
项目id |
appId |
否 |
应用id |
参数例子
"***"
字段 |
是否必须 |
字段说明 |
id |
是 |
32位UUID |
成功例子
{
"result": "success",
"data": {
"id": "dev_1",
"groupCode": "PG",
"fileName": "major",
"fileType": "专业",
"fileBucket": "Testing",
"filePath":12,
"fileSize":"**",
"businessId":"20210813000000",
"expireDate":"***",
"creationTime": "20210813000000",
"creator": "wdl",
"modifiedTime": "20210813000000",
"modifier": "wdl",
"valid": 1
},
"count": 26
}
字段 |
是否必有 |
字段说明 |
id |
是 |
32位UUID |
groupCode |
是 |
集团编码:租户 |
fileName |
是 |
文件名称:显示用 |
fileType |
是 |
文件类型:0-文件,1-目录 |
fileBucket |
否 |
文件分组:默认为应用名 |
filePath |
是 |
文件路径:含文件名称 - 对应文件存储路径 |
fileSize |
是 |
文件大小 |
businessId |
是 |
关联业务Id |
expireDate |
否 |
保留期限 |
creationTime |
否 |
创建时间,格式为yyyyMMddHHmmss |
creator |
否 |
创建人账号id |
modifiedTime |
否 |
最后更新时间,格式为yyyyMMddHHmmss |
modifier |
否 |
最后更新账号id |
valid |
否 |
有效状态,0-无效,1-有效 |
接口修改记录
41005 根据业务应用id查找文件信息
接口
http://localhost:8831/dmp-file/file/queryByBusiness
请求方式
POST请求
RequestHeader
key |
value |
Content-Type |
application/json |
RequestParam(URL中的Path参数)
字段 |
是否必须 |
字段说明 |
userId |
是 |
用户id |
groupCode |
否 |
集团编码 |
projectId |
否 |
项目id |
appId |
否 |
应用id |
参数例子
"***"
字段 |
是否必须 |
字段说明 |
id |
是 |
32位UUID |
成功例子
{
"result": "success",
"data": [
{
"id": "dev_1",
"groupCode": "PG",
"fileName": "major",
"fileType": "专业",
"fileBucket": "Testing",
"filePath":12,
"fileSize":"**",
"businessId":"20210813000000",
"expireDate":"***",
"creationTime": "20210813000000",
"creator": "wdl",
"modifiedTime": "20210813000000",
"modifier": "wdl",
"valid": 1
}
],
"count": 26
}
字段 |
是否必有 |
字段说明 |
id |
是 |
32位UUID |
groupCode |
是 |
集团编码:租户 |
fileName |
是 |
文件名称:显示用 |
fileType |
是 |
文件类型:0-文件,1-目录 |
fileBucket |
否 |
文件分组:默认为应用名 |
filePath |
是 |
文件路径:含文件名称 - 对应文件存储路径 |
fileSize |
是 |
文件大小 |
businessId |
是 |
关联业务Id |
expireDate |
否 |
保留期限 |
creationTime |
否 |
创建时间,格式为yyyyMMddHHmmss |
creator |
否 |
创建人账号id |
modifiedTime |
否 |
最后更新时间,格式为yyyyMMddHHmmss |
modifier |
否 |
最后更新账号id |
valid |
否 |
有效状态,0-无效,1-有效 |
接口修改记录
操作时间 |
操作 |
操作内容 |
2021年8月17日10:46:06 |
新增 |
新增接口 |
41006 获得断点上传文件的分片信息
接口
http://localhost:8831/dmp-file/file/initChunkUpload?groupCode=YL&userId=0
请求方式
POST请求
RequestHeader
key |
value |
Content-Type |
application/json |
RequestParam(URL中的Path参数)
字段 |
是否必须 |
字段说明 |
userId |
是 |
用户id |
groupCode |
是 |
集团编码 |
projectId |
否 |
项目id |
appId |
否 |
应用id |
参数例子
{
"fileMd5":"***",
"fileName":"***",
"chunkCount":3
}
字段 |
是否必须 |
字段说明 |
fileMd5 |
是 |
文件内容的MD5值 |
fileName |
是 |
文件名称 |
chunkCount |
是 |
文件的分片数,文件切片的算子必须大于5M,且每个分片的大小不能小于5M |
成功例子
{
"result": "success",
"data": {
"id": "123456",
"uploadCode": 200,
"content": [
{
"partNumber":1,
"uploadUrl":"http://...,调用时使用的是PUT请求"
}
]
}
}
字段 |
子字段 |
是否必有 |
字段说明 |
id |
|
否 |
uploadCode为200会有值. |
uploadCode |
|
是 |
文件上传标识 200-秒传 202-断点续传且文件分片均已上传 203-断点续传 |
content |
|
否 |
uploadCode为203会有值 |
|
partNumber |
是 |
分片序号 |
|
uploadUrl |
是 |
文件上传URL 使用该url直接上传文件到文件服务器 |
接口修改记录
操作时间 |
操作 |
操作内容 |
2021年10月23日14:52:11 |
新增 |
新增接口 |
41007 合并上传的断点续传文件
接口
http://localhost:8831/dmp-file/file/composeFile?groupCode=YL&userId=0
请求方式
POST请求
RequestHeader
key |
value |
Content-Type |
application/json |
RequestParam(URL中的Path参数)
字段 |
是否必须 |
字段说明 |
userId |
是 |
用户id |
groupCode |
是 |
集团编码 |
projectId |
否 |
项目id |
appId |
否 |
应用id |
参数例子
{
"fileMd5":"***",
"fileName":"***",
"fileBucket":"ADM"
}
字段 |
是否必须 |
字段说明 |
fileMd5 |
是 |
文件内容的MD5值 |
fileName |
是 |
文件名称 |
fileBucket |
是 |
存储空间名称 允许字符:小写字母、连字符、数字 长度为3至63 开头和结尾必须是字母或数字 |
成功例子
{
"result": "success",
"data": {
"id": "123456"
}
}
接口修改记录
操作时间 |
操作 |
操作内容 |
2021年10月23日15:04:14 |
新增 |
新增接口 |
41008 获得文件上传信息
接口
http://localhost:8831/dmp-file/file/initSingleUpload?groupCode=YL&userId=0
请求方式
POST请求
RequestHeader
key |
value |
Content-Type |
application/json |
RequestParam(URL中的Path参数)
字段 |
是否必须 |
字段说明 |
userId |
是 |
用户id |
groupCode |
是 |
集团编码 |
projectId |
否 |
项目id |
appId |
否 |
应用id |
参数例子
{
"fileMd5":"***",
"fileName":"***",
"fileBucket":"adm",
"fileSize":10240
}
字段 |
是否必须 |
字段说明 |
fileMd5 |
是 |
文件内容的MD5值 |
fileName |
是 |
文件名称 |
fileBucket |
是 |
存储空间名称 允许字符:小写字母、连字符、数字 长度为3至63 开头和结尾必须是字母或数字 |
fileSize |
是 |
文件内容字节长度 |
成功例子
{
"result": "success",
"data": {
"id": "123456",
"uploadCode": 200,
"content": [
{
"partNumber":1,
"uploadUrl":"http://...,调用时使用的是PUT请求"
}
]
}
}
字段 |
子字段 |
是否必有 |
字段说明 |
id |
|
是 |
文件id |
uploadCode |
|
是 |
文件上传标识 200-秒传 201-单个文件上传 |
content |
|
否 |
uploadCode为201会有值 |
|
partNumber |
是 |
分片序号 |
|
uploadUrl |
是 |
文件上传URL 使用该url直接上传文件到文件服务器 |
接口修改记录
操作时间 |
操作 |
操作内容 |
2021年10月23日14:52:11 |
新增 |
新增接口 |
41009 获得文件下载信息
接口
http://localhost:8831/dmp-file/file/initFileDownload?groupCode=YL&userId=0
请求方式
POST请求
RequestHeader
key |
value |
Content-Type |
application/json |
RequestParam(URL中的Path参数)
字段 |
是否必须 |
字段说明 |
userId |
是 |
用户id |
groupCode |
是 |
集团编码 |
projectId |
否 |
项目id |
appId |
否 |
应用id |
参数例子
{
"fileId":"***"
}
字段 |
是否必须 |
字段说明 |
fileId |
是 |
文件id |
成功例子
{
"result": "success",
"data": {
"id": "1451771582172012545",
"groupCode": "YL",
"fileName": "572573a50fed51c18a3decbe46c1f599.jpeg",
"fileType": "0",
"fileBucket": "adm",
"fileSize": 841926,
"fileMd5": "ebda7668886ceec6fc11997844d75ff3",
"businessId": "1451771580297158658",
"fileDownloadUrl": "http://192.168.100.102:31335/adm/YL/20211023/572573a50fed51c18a3decbe46c1f599.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=persagy%2F20211023%2FGM%2B8%2Fs3%2Faws4_request&X-Amz-Date=20211023T071455Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=20db5a336991ba4a706e67e6b3154e897981f55481981d73805181100574f1f9,调用时使用的是PUT请求"
}
}
字段 |
是否必有 |
字段说明 |
id |
是 |
文件id |
groupCode |
是 |
集团编码 |
fileName |
是 |
文件名称 |
fileType |
是 |
文件类型,0-文件,1-文件夹 |
fileBucket |
是 |
存储空间名称 |
fileSize |
否 |
文件长度,单位为字节 |
fileMd5 |
是 |
文件内容的MD5值 |
businessId |
否 |
文件对应的业务id |
fileDownloadUrl |
是 |
文件下载地址 |
接口修改记录
操作时间 |
操作 |
操作内容 |
2021年10月23日15:18:11 |
新增 |
新增接口 |
41010 根据文件id批量获取文件下载信息
接口
http://localhost:8831/dmp-file/file/queryFetchUrlsByFileIds?groupCode=XG&userId=0
请求方式
POST请求
RequestHeader
key |
value |
Content-Type |
application/json |
RequestParam(URL中的Path参数)
字段 |
是否必须 |
字段说明 |
userId |
是 |
用户id |
groupCode |
否 |
集团编码 |
projectId |
否 |
项目id |
appId |
否 |
应用id |
参数例子
{
"fileIds":["***"]
}
字段 |
是否必须 |
字段说明 |
fileId |
是 |
文件id |
成功例子
{
"result": "success",
"data": {
"文件id": "http://192.168.100.102:31335/adm/YL/20211023/572573a50fed51c18a3decbe46c1f599.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=persagy%2F20211023%2FGM%2B8%2Fs3%2Faws4_request&X-Amz-Date=20211023T071455Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=20db5a336991ba4a706e67e6b3154e897981f55481981d73805181100574f1f9,调用时使用的是PUT请求"
}
}
字段 |
是否必有 |
字段说明 |
文件id |
是 |
传参的文件id,值为文件下载地址 |
接口修改记录
操作时间 |
操作 |
操作内容 |
2021年12月31日15:24:46 |
新增 |
新增接口 |