关于java:文件上传组件X-Spring-File-Storag使用

4次阅读

共计 2141 个字符,预计需要花费 6 分钟才能阅读完成。

X Spring File Storage 能够简化上传文件代码,能够配置多上传平台。

  1. 须要引入的依赖
<!-- spring-file-storage 必须要引入 -->
<dependency>
    <groupId>cn.xuyanwu</groupId>
    <artifactId>spring-file-storage</artifactId>
    <version>0.7.0</version>
</dependency>
 
<!-- 华为云 OBS 不应用的状况下能够不引入 -->
<dependency>
    <groupId>com.huaweicloud</groupId>
    <artifactId>esdk-obs-java</artifactId>
    <version>3.22.3.1</version>
</dependency>
  1. 配置文件
spring:
  file-storage: #文件存储配置
    default-platform: local-1 #默认应用的存储平台,thumbnail-suffix: ".min.jpg" #缩略图后缀,例如【.min.jpg】【.png】local: # 本地存储(不举荐应用),不应用的状况下能够不写
      - platform: local-1 # 存储平台标识
        enable-storage: true  #启用存储
        enable-access: true #启用拜访(线上请应用 Nginx 配置,效率更高)domain: "http://127.0.0.1:9966/test/file/" # 拜访域名,例如:“http://127.0.0.1:8030/test/file/”,留神前面要和 path-patterns 保持一致,“/”结尾,本地存储倡议应用相对路径(/test/file/),不便前期更换域名
        base-path: E:/Temp/test/ # 存储地址
        path-patterns: /test/file/** # 拜访门路,开启 enable-access 后,通过此门路能够拜访到上传的文件
    huawei-obs: # 华为云 OBS,不应用的状况下能够不写
      - platform: huawei-obs-1 # 存储平台标识
        enable-storage: true  # 启用存储
        access-key: ak
        secret-key: sk
        end-point: ep
        bucket-name: bn
        domain: / # 拜访域名,留神“/”结尾,例如:http://abc.obs.com/
        base-path: / # 根底门路 
  1. 留神配置每个平台后面都有个 - 号,通过以下形式能够配置多个
local:
  - platform: local-1 # 存储平台标识
    enable-storage: true
    enable-access: true
    domain: ""
    base-path: D:/Temp/test/
    path-patterns: /test/file/**
  - platform: local-2 # 存储平台标识,留神这里不能反复
    enable-storage: true
    enable-access: true
    domain: ""
    base-path: D:/Temp/test2/
    path-patterns: /test2/file/**
  1. 启动类调整
@EnableFileStorage
@SpringBootApplication
public class SpringTestApplication{public static void main(String[] args) {SpringApplication.run(SpringTestApplication.class, args);
    }
}
  1. 简略应用
@RestController
public class FileDetailController {
 
    @Autowired
    private FileStorageService fileStorageService;// 注入实列
 
    /**
     * 上传文件,胜利返回文件 url
     */
    @PostMapping("/upload")
    public String upload(MultipartFile file) {FileInfo fileInfo = fileStorageService.of(file)
                .setPath("upload/") // 保留到相对路径下,为了方便管理,不须要能够不写
                .setObjectId("0")   // 关联对象 id,为了方便管理,不须要能够不写
                .setObjectType("0") // 关联对象类型,为了方便管理,不须要能够不写
                .putAttr("role","admin") // 保留一些属性,能够在切面、保留上传记录、自定义存储平台等中央获取应用,不须要能够不写
                .setPlatform("huawei-obs-1") // 应用指定的存储平台,不写则应用默认存储平台
                .upload();  // 将文件上传到对应中央
        return fileInfo == null ? "上传失败!" : fileInfo.getUrl();}
}
  1. X Spring File Storage 上传不仅反对本地和华为云 obs 上传,还反对阿里云 OSS,腾讯云 COS,百度云 BOS 等更多平台,还有对于 X Spring File Storage 的更多上传,查问,删除文件等办法详见官网:链接
正文完
 0