spring boot文件上传之x-file-storage

news/2024/9/27 18:42:24 标签: spring boot, 后端, java

spring boot文件上传之x-file-storage

今天看到一个文件上传的开源组件x-file-storage,官方地址如下:

https://x-file-storage.xuyanwu.cn/#/

该组件官网是这样介绍的,如下:

一行代码将文件存储到本地、FTP、SFTP、WebDAV、阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS、百度云 BOS、又拍云 USS、MinIO、 Amazon S3、GoogleCloud Storage、FastDFS、 Azure Blob Storage、Cloudflare R2、金山云 KS3、美团云 MSS、京东云 OSS、天翼云 OOS、移动 云EOS、沃云 OSS、 网易数帆 NOS、Ucloud US3、青云 QingStor、平安云 OBS、首云 OSS、IBM COS、其它兼容 S3 协议的存储平台。查看 所有支持的存储平台

具体学习的话可以详细参考该组件网站给的示例

这里以springboot3为例,文件上传到本地做了一个简单测试,代码如下

第一步,引入pom依赖

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

第二步,配置yaml

java">dromara:
  x-file-storage: 
    default-platform: local-plus-1 
    thumbnail-suffix: ".min.jpg" 
    local-plus:
      - platform: local-plus-1 
        enable-storage: true  
        enable-access: true 
        domain: http://127.0.0.1:8080/file/ 
        base-path: local-plus/
        path-patterns: /file/** 
        storage-path: D:/Temp/ 

第三步,编写controller

java">@RestController
public class FileController {

    @Autowired
    private FileStorageService fileStorageService;

    /**
     * 上传文件
     */
    @PostMapping("/upload")
    public FileInfo upload(@RequestParam("file")MultipartFile file) {
        String originalFilename = file.getOriginalFilename();
        FileInfo upload = fileStorageService.of(file).setSaveFilename(originalFilename).upload();
        return upload;
    }
}

第四步,启动类上添加开启启用该组件注解

java">@SpringBootApplication
@EnableFileStorage
public class XFileStorageApplication {

    public static void main(String[] args) {
        SpringApplication.run(XFileStorageApplication.class, args);
    }

}

最后启动项目进行测试,使用postman进行发送请求
在这里插入图片描述

然后到 yaml 配置文件指定的位置进行查看
在这里插入图片描述


http://www.niftyadmin.cn/n/5679277.html

相关文章

golang strings api接口

1函数 函数名参数返回值解释Clones stringstringClone 返回 s 的一份新副本。它保证将 s 的副本放入新的分配中&#xff0c;这在仅保留较大字符串的一小部分子字符串时非常重要。使用 Clone 可以帮助此类程序使用更少的内存。当然&#xff0c;由于使用 Clone 会进行复制&#…

Ant design vue中的日期

1、日期默认为当天&#xff08;版本3.X&#xff09;&#xff1a; // DOM&#xff1a; <a-date-picker v-model:value"chooseDate" :showToday"false" :allowClear"false" format"YYYY-MM-DD" class"datePick"/>// DA…

@Transactional导致数据库连接数不够

在Spring中进行事务管理非常简单&#xff0c;只需要在方法上加上注解Transactional&#xff0c;Spring就可以自动帮我们进行事务的开启、提交、回滚操作。甚至很多人心里已经将Spring事务Transactional划上了等号&#xff0c;只要有数据库相关操作就直接给方法加上Transactiona…

检查代码中的数据引用错误

1. 是否有引用的变量未赋值或未初始化&#xff1f;这可能是最常见的编程错误&#xff0c;在各种环境中都可能发生。在引用每个数据项&#xff08;如变量、数组元素、结构中的域&#xff09;时&#xff0c;应试图非正式地“证明”该数据项在当前位置具有确定的值。 2. 对于所有的…

基于单片机无线智能报警系统的设计

文章目录 前言资料获取设计介绍功能介绍设计程序具体实现截图设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对…

智能手机取证: 专家如何从被锁定设备中提取数据?

在数字取证领域&#xff0c;从被锁定的手机中检索数据的能力是决定调查成功与否的关键技能。由于智能手机往往是解决复杂案件的关键&#xff0c;智能手机取证已经成为打击犯罪和恐怖主义战争中的一个关键组成部分。通话记录、短信、电子邮件&#xff0c;甚至位置数据都可能被发…

19.2 编写dockerfile和k8s yaml

本节重点介绍 : 编写Dockerfile编写k8s需要的yaml 编写Dockerfile 1. FROM 指定基础镜像 必须有的指令&#xff0c;并且必须是第一条指令Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版&#xff0c;Alpine 采用了 musl libc 和 busybox 以减…

(附代码)psutil实时监控脚本运行过程中消耗的资源

在运行脚本时有时需要监控脚本中各模块 占用的cpu以及memory的情况&#xff0c;一般是执行python xx.py后&#xff0c;另起temernal&#xff0c;输入top命令实时监控&#xff0c;但这个存在一个问题&#xff0c;当脚本运行时间比较久时&#xff0c;一直盯着屏幕 也不合适。 所…