文件存储解决方案:Spring File Storage

文件存储解决方案:Spring File Storage

x-file-storage x-file-storage 项目地址: https://gitcode.com/gh_mirrors/xfi/x-file-storage

1. 项目介绍

Spring File Storage 是一个开源项目,旨在提供一种简单的文件存储解决方案,允许用户通过一行代码将文件存储到多种存储平台。支持的存储平台包括本地、FTP、SFTP、WebDAV、谷歌云存储、阿里云OSS等,并且还在持续扩展中。这个项目大大简化了文件存储的开发工作,提高了开发效率。

2. 项目快速启动

环境准备

  • JDK 11+
  • Maven 3.8.1+

添加依赖

pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.dromara.x-file-storage</groupId>
    <artifactId>x-file-storage-spring</artifactId>
    <version>2.2.1</version>
</dependency>

如果使用阿里云OSS作为存储平台,还需要添加阿里云OSS SDK依赖:

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.16.1</version>
</dependency>

配置文件

application.yml 配置文件中添加以下配置:

dromara:
  x-file-storage:
    default-platform: aliyun-oss-1  # 默认使用的存储平台
    aliyun-oss:
      platform: aliyun-oss-1  # 存储平台标识
      enable-storage: true  # 启用存储
      access-key: ??  # 访问密钥
      secret-key: ??  # 密钥
      end-point: ??  # 访问域名
      bucket-name: ??  # 存储桶名称
      domain: ??  # 访问域名,注意“/”结尾
      base-path: test/  # 基础路径

启动类

在启动类上添加 @EnableFileStorage 注解:

@EnableFileStorage
@SpringBootApplication
public class SpringFileStorageTestApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringFileStorageTestApplication.class, args);
    }
}

上传文件

在控制器中注入 FileStorageService 并使用它来上传文件:

@RestController
public class FileDetailController {
    @Autowired
    private FileStorageService fileStorageService;

    @PostMapping("/upload")
    public FileInfo upload(MultipartFile file) {
        return fileStorageService.of(file).upload();
    }
}

3. 应用案例和最佳实践

上传文件并返回URL

@PostMapping("/upload2")
public String upload2(MultipartFile file) {
    FileInfo fileInfo = fileStorageService.of(file)
        .setPath("upload/")
        .setSaveFilename("image.jpg")
        .upload();
    return fileInfo == null ? "上传失败!" : fileInfo.getUrl();
}

上传图片并生成缩略图

@PostMapping("/upload-image")
public FileInfo uploadImage(MultipartFile file) {
    return fileStorageService.of(file)
        .image(img -> img.size(1000, 1000))
        .thumbnail(th -> th.size(200, 200))
        .upload();
}

上传文件到指定存储平台

@PostMapping("/upload-platform")
public FileInfo uploadPlatform(MultipartFile file) {
    return fileStorageService.of(file)
        .setPlatform("aliyun-oss-1")
        .upload();
}

4. 典型生态项目

  • Spring Boot: 结合Spring Boot使用,提供自动配置支持。
  • Solon: Solon环境下的使用,提供Solon插件。
  • 各种存储平台: 支持多种存储平台,如阿里云OSS、华为云OBS等。

以上是Spring File Storage项目的简要介绍、快速启动、应用案例和典型生态项目。更多详细信息和配置选项,请参考项目官方文档。

x-file-storage x-file-storage 项目地址: https://gitcode.com/gh_mirrors/xfi/x-file-storage

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆璋垒Estelle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值