文件上传组件-X Spring File Storag使用

X Spring File Storage是一个能简化文件上传代码的库,支持配置多个上传平台,如本地、华为云OBS、阿里云OSS、腾讯云COS和百度云BOS。通过引入特定依赖,配置文件并调整启动类,可以轻松实现文件的上传操作。更多高级功能和详细使用方法可在官方文档中查看。

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的更多上传,查询,删除文件等方法详见官网:链接

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值