springboot配置阿里云OSS存储实现文件上传下载功能

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

要在Spring Boot中配置阿里云OSS存储实现文件上传下载功能,你可以按照以下步骤操作:

  1. 引入相关依赖:
    pom.xml文件中添加以下依赖:

    <dependency>
     <groupId>com.aliyun.oss</groupId>
     <artifactId>aliyun-sdk-oss</artifactId>
     <version>3.10.4</version>
    </dependency>
    
  2. 配置OSS相关参数:
    application.propertiesapplication.yml文件中配置阿里云OSS的accessKeyId、accessKeySecret、endpoint、bucket等参数:

    oss.endpoint=your_endpoint
    oss.accessKeyId=your_access_key_id
    oss.accessKeySecret=your_access_key_secret
    oss.bucketName=your_bucket_name
    
  3. 创建OSS客户端:
    创建一个OSS客户端的bean,用于操作OSS:

    @Configuration
    public class OSSConfig {
         
    
     @Value("${oss.endpoint}")
     private String endpoint;
    
     @Value("${oss.accessKeyId}")
     private String accessKeyId;
    
     @Value("${oss.accessKeySecret}")
     private String accessKeySecret;
    
     @Bean
     public OSSClient ossClient() {
         
         return new OSSClient(endpoint, accessKeyId, accessKeySecret);
     }
    }
    
  4. 实现文件上传和下载的方法:
    创建一个Service或Controller类,实现文件上传和下载的方法:

    @Service
    public class FileService {
         
    
     @Autowired
     private OSSClient ossClient;
    
     @Value("${oss.bucketName}")
     private String bucketName;
    
     public String uploadFile(String filename, InputStream inputStream) {
         
         ossClient.putObject(bucketName, filename, inputStream);
         // 返回文件的URL
         return ossClient.generatePresignedUrl(bucketName, filename, new Date(System.currentTimeMillis() + 3600 * 1000)).toString();
     }
    
     public InputStream downloadFile(String filename) {
         
         OSSObject ossObject = ossClient.getObject(bucketName, filename);
         return ossObject.getObjectContent();
     }
    }
    
  5. 调用文件上传和下载的方法:
    在Controller中调用文件上传和下载的方法:

    @RestController
    public class FileController {
         
    
     @Autowired
     private FileService fileService;
    
     @PostMapping("/upload")
     public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
         
         // 获取文件的输入流
         InputStream inputStream = file.getInputStream();
         // 生成文件名
         String filename = UUID.randomUUID().toString() + file.getOriginalFilename();
         // 调用文件上传方法
         String fileUrl = fileService.uploadFile(filename, inputStream);
         return fileUrl;
     }
    
     @GetMapping("/download/{filename}")
     public ResponseEntity<InputStreamResource> downloadFile(@PathVariable("filename") String filename) throws IOException {
         
         // 调用文件下载方法
         InputStream inputStream = fileService.downloadFile(filename);
         // 设置文件响应头
         HttpHeaders headers = new HttpHeaders();
         headers.add("Content-Disposition", "attachment; filename=" + filename);
         return ResponseEntity.ok()
                 .headers(headers)
                 .contentType(MediaType.APPLICATION_OCTET_STREAM)
                 .body(new InputStreamResource(inputStream));
     }
    }
    

以上就是在Spring Boot中配置阿里云OSS存储实现文件上传下载功能的步骤。你可以根据自己的需求进行修改和扩展。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
29天前
|
前端开发 Java 应用服务中间件
Springboot对MVC、tomcat扩展配置
Springboot对MVC、tomcat扩展配置
|
2天前
|
Java 文件存储 Spring
【springboot】logback配置
【springboot】logback配置
10 1
|
7天前
|
Java 微服务 Spring
Spring Boot中获取配置参数的几种方法
Spring Boot中获取配置参数的几种方法
20 2
|
9天前
|
存储 SQL 关系型数据库
存储系统、数据库和对象存储 | 青训营
存储系统、数据库和对象存储 | 青训营
|
10天前
|
Web App开发 前端开发 Java
SpringBoot配置HTTPS及开发调试
在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享
19 0
SpringBoot配置HTTPS及开发调试
|
12天前
|
存储 Java 数据库
SpringBoot使用jasypt实现数据库配置加密
这样,你就成功地使用Jasypt实现了Spring Boot中的数据库配置加密,确保敏感信息在配置文件中以加密形式存储,并在应用启动时自动解密。
45 2
|
15天前
|
网络协议 对象存储
阿里云oss配置自有域名
阿里云oss配置自有域名
22 1
|
22天前
|
存储 安全 API
对象存储OSS产品常见问题之附件上传后存储存在被窃取的风险如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
22 0
|
26天前
|
Java Shell 测试技术
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
40 0
一次配置,多场景适用:Spring Boot多套配置文件的深度剖析
|
1月前
|
Java 容器
SpringBoot使用配置注解开启自动配置功能&整合spring-boot-configuration-processor
SpringBoot使用配置注解开启自动配置功能&整合spring-boot-configuration-processor
17 0

热门文章

最新文章

相关产品

  • 对象存储
  • http://www.vxiaotou.com