oss-spring-boot-starter

兼容S3 协议的通用文件存储工具类 ,支持 兼容S3 协议的云存储

  • MINIO
  • 阿里云
  • 华为云
  • 腾讯云
  • 京东云

spring boot starter依赖

  • 方便在 web 环境下使用 oss ,已上传至 maven 仓库
  1. <dependency>
  2. <groupId>com.litong.boot</groupId>
  3. <artifactId>oss-spring-boot-starter</artifactId>
  4. <version>1.0-SNAPSHOT</version>
  5. </dependency>

使用方法

配置文件

  1. oss:
  2. #使用云OSS 需要关闭
  3. path-style-access: false
  4. #对应上图 ③ 处配置
  5. endpoint: s3-cn-east-1.qiniucs.com
  6. # 上文创建的AK, 一定注意复制完整不要有空格
  7. access-key: xxx
  8. # 上文创建的SK, 一定注意复制完整不要有空格
  9. secret-key: xxx
  10. # 上文创建的桶名称
  11. bucket-name: test

代码使用

  1. @Autowired
  2. private OssTemplate ossTemplate;
  3. @Transactional(rollbackFor = Exception.class)
  4. public Map<String, Object> uploadFile(MultipartFile file) {
  5. String fileName = IdUtil.simpleUUID() + StrUtil.DOT + FileUtil.extName(file.getOriginalFilename());
  6. Map<String, Object> resultMap = new HashMap<>(4);
  7. resultMap.put("fileName", fileName);
  8. try {
  9. ossTemplate.putObject(CommonConstants.BUCKET_NAME, fileName, file.getInputStream());
  10. // 文件管理数据记录,收集管理追踪文件
  11. SysFileDO sysFile = new SysFileDO();
  12. // 原文件名
  13. String original = file.getOriginalFilename();
  14. sysFile.setFileName(fileName);
  15. sysFile.setOriginal(original);
  16. sysFile.setFileSize(file.getSize());
  17. sysFile.setFileType(FileUtil.extName(original));
  18. sysFile.setBucketName(ossProperties.getBucketName());
  19. this.save(sysFile);
  20. } catch (Exception e) {
  21. log.error("上传失败", e);
  22. }
  23. return resultMap;
  24. }