otto
|
8a69939e84
|
fix(超算专区): 弃用公开上传接口
|
2026-06-04 10:05:21 +08:00 |
amypeng
|
30a3119580
|
积分代码fix
积分代码fix
|
2026-05-31 17:06:51 +08:00 |
欧涛
|
fec5dd7f3b
|
feat(大文件分片上传): 优化断点续传功能
检查秒传时用查询数据库是否存在相同的 fileSignature 且状态为上传中或者合并中的会话,返回该会话的id,前端可以根据该会话id继续完成上传,如果该会话为上传中则返回已上传分片的number,前端可以仅上传未上传的分片,如果为合并中,前端可以调用查询进度接口获取合并进度
|
2026-04-13 16:05:22 +08:00 |
欧涛
|
4126803cbe
|
feat(大文件分片上传): 优化断点续传功能
检查秒传时用查询数据库是否存在相同的 fileSignature 且状态为上传中或者合并中的会话,返回该会话的id,前端可以根据该会话id继续完成上传,如果该会话为上传中则返回已上传分片的number,前端可以仅上传未上传的分片,如果为合并中,前端可以调用查询进度接口获取合并进度
|
2026-04-10 16:54:29 +08:00 |
欧涛
|
5e8f9fec06
|
fix(大文件分片上传): 优化文件大小限制提示展示,增加字节数展示,防止文件显示为估算的50GB,但是因为字节数超过限制也会被拦截的问题
|
2026-04-09 14:34:21 +08:00 |
欧涛
|
5e9bc67cb7
|
fix(大文件分片上传): 最大文件大小计算错误,应该使用1024*50MB而不是1000*50MB
|
2026-04-09 11:39:04 +08:00 |
欧涛
|
37dcb5b98c
|
refactor(大文件分片上传): 优化文件上传速度
## 问题分析:
1. 当前上传超大文件(49G)时,合并接口非常慢,需要半个小时以上才能合并完成,排查代码发现,当前是将文件合并完成后,再调用内置的文件上传接口,进行上传(因为当前文件微服务对不同微服务有不同的处理逻辑,例如:资源微服务的文件上传需要指定到Resouce下文件夹,文章微服务的文件上传需要支持static访问),所以之前在实现大文件分片上传时额外增加了这个步骤,因为之前没有测试特别大的文件,所以影响不是很明显,当超大文件上传时,可能会需要成倍的时间
2. 当前哈希校验均是在文件合并完成后才进行哈希校验,对于超大文件的采样哈希此方案可能会导致耗费大量时间完成合并后才发现哈希校验错误,会导致耽误大量时间
## 修复方案:
1. 合并接口中合并完成后再上传的逻辑调整为:合并操作直接调用原上传接口,并在原上传接口中支持分片合并逻辑兼容原实体文件上传逻辑,确保只进行一次文件合并操作不重复保存文件
2. 哈希校验调整逻辑:对于采样哈希将在合并前进行,因为采样哈希只需要对采样的分片进行哈希计算,所以不需要合并后再判断,可以在合并前便拦截哈希校验错误的文件;对于需要完整校验哈希的文件,将在合并后进行哈希校验,因为需要进行完整哈希校验的文件不会特别大,所以合并后校验也不会太影响上传速度
|
2026-04-09 11:17:40 +08:00 |
欧涛
|
4847718321
|
fix(大文件分片上传): 将合并接口调整为异步
修复合并接口未异步处理的问题
|
2026-04-08 15:51:04 +08:00 |
欧涛
|
e906a46eec
|
fix(大文件分片上传): 将合并接口调整为异步
修复合并接口未异步处理的问题
|
2026-04-08 15:45:20 +08:00 |
欧涛
|
5ef10bfc1f
|
fix(大文件分片上传): 将合并接口调整为异步
将合并分片接口从同步执行改为异步执行,提升用户体验。前端调用合并接口后立即返回,通过轮询上传进度接口获取合并状态和结果。
|
2026-04-01 16:27:32 +08:00 |
欧涛
|
b6034b469c
|
fix(大文件分片上传): 调整采样分片哈希计算方式
先对采样点进行排序,然后对采样点分片逐个计算md5,然后将三个md5值拼接起来,然后计算三个md5值拼接起来的字符串的md5值
|
2026-04-01 13:52:17 +08:00 |
欧涛
|
66ffcc7595
|
fix(大文件分片上传): maxChunkSize取了nacos上minChunkSize参数,导致最大分片只能1MB,所以出现了4.7G文件会有4000多个分片的问题
|
2026-04-01 11:12:16 +08:00 |
欧涛
|
f86d3213cd
|
refactor(大文件分片上传): 延迟签名计算,根据 hashType 动态选择哈希算法
- 移除文件选择后立即计算 MD5 的逻辑
- 改为先调用初始化接口获取 hashType 和 sampleChunks
- 根据 hashType 动态计算:FULL 类型计算完整 MD5,SAMPLE 类型计算采样点哈希
- 在秒传检查接口中使用计算好的签名
|
2026-04-01 10:22:26 +08:00 |
欧涛
|
7b4ee072dd
|
fix(大文件分片上传): 用 file_id 替换 file_identifier 修复秒传问题
1. 问题:
- 分片上传合并完成后,sys_file_upload_session 表中的 file_identifier 字段为 NULL
- cms/resource 类型上传不生成 file_identifier,导致无法实现秒传
- 秒传成功时返回的 url 为 null(selectSysFileInfoByFileId 方法未设置 downloadUrl)
2. 解决方案:用 file_id 替换 file_identifier,统一使用 sys_file_info 表的主键进行关联。
|
2026-03-30 16:42:49 +08:00 |
欧涛
|
f336e702ac
|
fix(大文件分片上传): 修复分片上传Mapper接口参数绑定问题
问题:分片上传时调用 updateStatusByUploadId 等方法报错:
Parameter 'status' not found. Available parameters are [arg1, arg0, param1, param2]
问题原因:Mapper接口中多参数方法缺少 @Param 注解,导致MyBatis无法正确绑定参数
|
2026-03-30 16:35:22 +08:00 |
欧涛
|
613bc5fc07
|
feat(文件服务): 新增大文件分片上传功能
1. 初始化上传时动态计算最优分片大小和并发数
2. 支持断点续传,检查分片是否已上传
3. 支持秒传,相同MD5文件无需重复上传
4. 并发上传多个分片,提升上传速度
5. 实时获取上传进度、速度和剩余时间
6. 取消上传并清理临时文件
7. 合并分片时进行MD5完整性校验
8. 定时清理24小时过期的未完成会话
|
2026-03-26 14:53:01 +08:00 |
wanjia9506
|
1b8f1ea253
|
Merge pull request '【资源库-成果库】 一些改动' (#881) from liuhuazhong/microservices:feat_chievements_dev into master
|
2025-05-26 19:02:16 +08:00 |
13036795865
|
7707757ac4
|
swagger添加注释
|
2025-05-13 15:50:32 +08:00 |
otto
|
5dae889f13
|
Merge pull request '资源库功能' (#867) from liuhuazhong/microservices:feat_chievements_dev into master
|
2025-05-09 17:13:59 +08:00 |
admin
|
ad1b5ca8c4
|
七日新增统计
|
2025-04-17 15:55:33 +08:00 |
wanjia
|
b2d98dabc9
|
fix(产品):添加公开上传接口
|
2025-03-26 11:29:58 +08:00 |
OTTO
|
8e51a872ba
|
fix(制品库优化): 打包文件时需对Nexus下载地址进行urlEncode处理
Signed-off-by: OTTO <731554297@qq.com>
|
2025-02-18 15:34:30 +08:00 |
OTTO
|
ee558dd5be
|
fix(文件服务): 修复通过文件标识下载接口异常
Signed-off-by: OTTO <731554297@qq.com>
|
2025-02-17 15:11:00 +08:00 |
OTTO
|
2d4392bfb2
|
fix(制品库优化): 修复制品移入产品库逻辑
当需要移入的制品文件未存在于文件服务中时,通过文件服务下载该文件,并返回文件标识,通过文件标识再将文件上传到nexus
Signed-off-by: OTTO <731554297@qq.com>
|
2025-02-12 11:34:21 +08:00 |
OTTO
|
8e6620ad2e
|
feat(产品库优化): 优化产品库打包功能
1. 文件服务开始打包时创建redis key(0:代表打包未完成;1:代表打包已完成;-1:代表打包失败,需要重新打包)
2. 异步执行打包任务时,若发生任何异常则将key值设置为-1,若打包完成则将key值设为1
3. 调用获取打包文件下载接口时,检查redis key值;若键值不存在或键值为1,代表打包成功,通过远程接口获取文件信息;若键值为-1,代表打包失败,需要重新打包;若调用远程接口获取文件信息失败仍提示用户打包失败需要重新打包
Signed-off-by: OTTO <731554297@qq.com>
|
2025-01-23 14:28:32 +08:00 |
OTTO
|
c7cc7a9111
|
feat(项目管理产品需求重构): 完善产品中的需求规格功能开发
修复附件无法下载的问题
Signed-off-by: OTTO <731554297@qq.com>
|
2024-12-10 14:22:28 +08:00 |
OTTO
|
f12fac99e7
|
feat(项目管理产品需求重构): 完善产品中的需求规格功能开发
需求规格纳入计划接口开发:
1. 限制仅已评审状态的需求规格才能纳入计划
2. 将需求规格文件上传至forge
3. 在对应项目中创建计划
4. 更新需规状态,记录计划id
5. 记录需规纳入计划操作
Signed-off-by: OTTO <731554297@qq.com>
|
2024-12-03 11:02:34 +08:00 |
OTTO
|
57429a801c
|
feat(特色专区专项项目): 完善专项项目逻辑
修改文件名最大长度:文件名最大长度(Linux默认支持最大的文件长度为255字节)
Signed-off-by: OTTO <731554297@qq.com>
|
2024-11-07 16:37:09 +08:00 |
OTTO
|
c192349d25
|
feat(特色专区专项项目): 完善专项项目逻辑
文件服务新增公开接口通过文件标识下载文件(当前仅允许专区文件通过改接口下载)
Signed-off-by: OTTO <731554297@qq.com>
|
2024-11-07 13:53:01 +08:00 |
OTTO
|
5a588c3e80
|
feat(特色专区专项项目): 完善专项项目逻辑
文件服务新增专区下支持文件标识的附件类型
Signed-off-by: OTTO <731554297@qq.com>
|
2024-11-07 11:24:42 +08:00 |
OTTO
|
4f279bc810
|
feat(制品库功能开发): 产品库增加打包下载产品库功能
新增接口:获取产品库打包下载地址
1. 判断产品库的打包文件标识是否为空,为空代表未打包,返回isPackaged=false
2. 若产品库的打包文件标识不为空,则调用文件微服务查询文件标识是否存在,若不存在则代表已打包但是打包工作未完成,返回isPackaged=true,packagedUrl=null;若存在则代表已打包且打包工作已完成,返回isPackaged=true,packagedUrl=文件下载地址;
|
2024-08-21 10:51:03 +08:00 |
OTTO
|
b9a21dd8ff
|
feat(制品库功能开发): 产品库增加打包下载产品库功能
文件微服务打包文件逻辑:修复数据库存储文件对象时文件路径错误的问题
|
2024-08-21 10:19:33 +08:00 |
OTTO
|
712568d7f3
|
feat(制品库功能开发): 产品库增加打包下载产品库功能
文件微服务打包文件逻辑:
1. 增加输入参数:压缩文件名(不包含文件后缀);修改输入参数打包结构的值fileSource为文件来源(文件标识或文件下载地址)
2. 由于打包过程中需要将下载或复制所有文件,并且需要压缩文件夹耗时较长,可能导致远程调用接口超时,所以调整为异步打包,内部调用打包接口时直接返回压缩文件标识,异步处理打包逻辑
3. 通过判断fileSource字段值是否为8位(文件标识长度为8位)来识别拷贝文件或从提供的url下载文件
4. 根据生成的压缩文件构建SysFileInfo对象并插入到数据库中
|
2024-08-21 09:35:07 +08:00 |
OTTO
|
fa3a852c94
|
feat(制品库功能开发): 产品库增加打包下载产品库功能
新增压缩文件帮助类:优化压缩日志
|
2024-08-20 10:36:28 +08:00 |
OTTO
|
4169c2fcd0
|
feat(制品库功能开发): 产品库增加打包下载产品库功能
文件微服务打包文件逻辑:
1. 通过微服务类型、层次结构、日期路径(年/月/日)以及tempPackagedDir-当前时间字符串构建临时工作目录
2. 将所有文件根据层级结构拷贝到临时目录:
- 根据文件打包目录参数创建文件夹
- 根据文件标识将文件拷贝到打包目录
3. 通过递归将临时工作目录打包为压缩包
4. 删除临时工作目录
|
2024-08-20 10:30:53 +08:00 |
OTTO
|
9ea9d119d4
|
feat(制品库功能开发): 产品库增加打包下载产品库功能
新增压缩文件帮助类:
1. 递归将指定文件夹压缩为ZIP文件,可保留原来的目录结构
2. 将文件列表压缩为ZIP文件
|
2024-08-20 09:19:21 +08:00 |
OTTO
|
9ec53a379c
|
feat(制品库功能开发): 产品库增加打包下载产品库功能
文件微服务新增远程接口:打包文件
|
2024-08-20 09:17:51 +08:00 |
OTTO
|
e18777dc51
|
feat(制品库功能开发): 产品库增加打包下载产品库功能
文件微服务新增远程接口:打包文件
|
2024-08-20 09:17:41 +08:00 |
OTTO
|
de99e2abdb
|
feat(制品库功能开发): 产品库增加打包下载产品库功能
文件微服务内部文件上传接口,新增返回值:文件标识
|
2024-08-20 09:14:24 +08:00 |
OTTO
|
6c4b75b4bf
|
feat(文件微服务重构): 优化上传接口逻辑
原接口在服务层中直接处理响应消息,调整为到接口层处理响应消息,该操作可提供服务层方法的通用性,同时使代码更简洁易懂
|
2024-08-19 17:12:53 +08:00 |
OTTO
|
86855bbee9
|
feat(制品库功能开发): 制品库文件内部传递逻辑优化
根据文件标识获取文件实体接口调整:
1. 接口会对返回值进行序列化,所以无法直接返回InputStream
2. 不使用字节数组进行返回,防止大文件溢出
3. 直接通过Feign返回文件Response
|
2024-08-16 10:27:27 +08:00 |
OTTO
|
4b6001536f
|
feat(制品库功能开发): 产品库制品文件上传接口开发
调整原从文件微服务获取文件实体接口:
1. 由原来的返回文件实体调整为返回文件流(文件实体之前没报错是因为本地开发时能获取到文件微服务的上传文件地址,文件微服务隔离后,项目管理微服务无法访问文件地址导致报错)
2. 定义文件流实体对象,返回文件名称
|
2024-07-12 16:19:37 +08:00 |
OTTO
|
c7200a04b8
|
feat(制品库功能开发): 针对各种格式的制品上传开发接口(开发Maven制品上传接口)
新增远程接口:根据文件标识获取文件实体
|
2024-07-02 14:49:26 +08:00 |
OTTO
|
efb5edce16
|
feat(微服务平台重命名): 去除ruoyi相关标识
|
2024-05-27 16:51:36 +08:00 |
OTTO
|
ce68b78fc6
|
feat(微服务平台重命名): 调整文件微服务
1、GroupId调整为com.microservices
2、启动类命名开头调整为Microservices*Application
3、日志输出目录调整为logs/microservices-*
4、应用名称调整为microservices-*
|
2024-05-27 14:58:58 +08:00 |
OTTO
|
5a7aaff499
|
feat(微服务平台重命名): 微服务平台命名调整为microservices
|
2024-05-27 10:10:44 +08:00 |