Skip to content

springboot 中间件

插件upload-file-jdk 除了前端的解决方案,同时也提供了后端周边,例如:可以直接引用 spring boot 中间件

如何引入

xml

<dependency>
  <groupId>io.github.a572251465</groupId>
  <artifactId>upload-file-jdk-spring-boot-starter</artifactId>
  <!-- 可以随意指定版本 建议指定最高版本 -->
  <version>1.0.5</version>
</dependency>

配置文件

简单配置

yaml
io:
  lvdaxian:
    upload:
      file:
        # 配置保存到磁盘
        enabledType: disk

详细配置

参数描述默认值可选项
io.lvdaxian.upload.file.enabled-type启动哪种方式保存文件-disk/ minio/ custom
io.lvdaxian.upload.file.enabled-logger是否支持输出 loggerfalse-
io.lvdaxian.upload.file.http-interceptor-order拦截器顺序10-
io.lvdaxian.upload.file.context-prefix请求公共前缀""-
※1 io.lvdaxian.upload.file.minio.access-keyMINIO 的accessKey--
※1 io.lvdaxian.upload.file.minio.secret-keyMINIO 的secretKey--
※1 io.lvdaxian.upload.file.minio.bucket-nameMINIO 的桶名称uploadfiletmpdir-
※1 io.lvdaxian.upload.file.minio.endpointMINIO 的入口点--
※2 io.lvdaxian.upload.file.disk.save-dir磁盘保存目录uploadFileTmpDir-
※2 io.lvdaxian.upload.file.disk.merge-file-way文件合并方式ZERO_COPY_WAYZERO_COPY_WAY/ NORMAL_WAY
※2 io.lvdaxian.upload.file.disk.enabled-concurrency-merge是否开启并发合并false-
※2 io.lvdaxian.upload.file.disk.delay-concurrency-merge-time并发合并 初次延迟时间20-
※2 io.lvdaxian.upload.file.disk.thread-sleep-time并发线程 执行休眠时间5-
  • ※1 MINIO 的配置参数,只有enabled-type = 'minio'的时候 才有效
  • ※2 DISK 的配置参数,只有enabled-type = 'disk'的时候 才有效

如何拿到上传的文件

既然我们已经将文件通过断点续传的方式上传了,但是我们怎么拿到文件呢

java

@RestController
public class TestController {
  
  // 该DI 会在启动器中 直接注入,直接使用即可
  @Resource
  private UploadFileUtils fileUtils;
  
  @GetMapping("/getFile/{filename}")
  public String getFile(@PathVariable("filename") String filename) {
    // 其实真正需要调用的是这个方法
    // filename 是断点续传上传后的文件名字
    // 应该是前端给后端的,后端直接拿这个名字调用该接口
    MultipartFile file = fileUtils.getMultipartFileByName(filename);
    // todo 拿到 file 后进行后续的操作
    return null;
  }
}

如何 自定义

配置

yaml
io:
  lvdaxian:
    upload:
      file:
        # 配置保存到磁盘
        enabledType: custom

重写接口

java
@Component
public class CustomOperate implements FileOperate {
}

@Component
public class UploadFileUtilsCustomImpl implements UploadFileUtils {}

版本管理

  • 1.0.1 暂时废弃
  • 1.0.2 暂时废弃
  • 1.0.3 暂时废弃
  • 1.0.4 暂时废弃
  • 1.0.5 实现了基于disk的断点续传的后端中间件, 已经部署生产了
  • 1.0.6 暂时废弃
  • 1.0.7 实现了对 minio 的支持,以及文件合并的时候 支持 零拷贝