Spring Boot 中配置阿里云 OSS 实现上传文件的功能

在 Spring Boot 中使用阿里云 OSS 上传文件的功能,需要进行以下几个步骤:

  1. 添加阿里云 OSS 的依赖

pom.xml 文件中添加阿里云 OSS 的依赖:

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.13.2</version>
</dependency>
  1. 在 application.properties 中配置阿里云 OSS 的参数

application.properties 中添加阿里云 OSS 的相关配置参数:

# 阿里云 OSS 相关参数
aliyun.oss.endpoint=oss-cn-hangzhou.aliyuncs.com
aliyun.oss.accessKeyId=your_access_key_id
aliyun.oss.accessKeySecret=your_access_key_secret
aliyun.oss.bucketName=your_bucket_name
  1. 创建一个文件上传的 Controller

创建一个文件上传的 Controller,并注入阿里云 OSS 的客户端。

@RestController
public class FileUploadController {
    
    @Autowired
    private OSS ossClient;
    
    @Value("${aliyun.oss.bucketName}")
    private String bucketName;
    
    @PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
        // 上传文件到阿里云 OSS
        String fileName = file.getOriginalFilename();
        InputStream inputStream = file.getInputStream();
        ossClient.putObject(bucketName, fileName, inputStream);
        
        // 返回文件访问的 URL
        return "https://" + bucketName + "." + ossClient.getEndpoint().toString().replace("http://", "") + "/" + fileName;
    }
}

在这个 Controller 中,我们注入了阿里云 OSS 的客户端,使用 @Value 注解将配置文件中的 bucketName 注入进来。在 uploadFile 方法中,我们将上传的文件通过阿里云 OSS 的客户端上传到指定的 bucketName 中,并返回文件的访问 URL。

  1. 创建阿里云 OSS 的客户端

最后,在 Spring Boot 的配置类中创建阿里云 OSS 的客户端:

@Configuration
public class OSSConfiguration {
    
    @Value("${aliyun.oss.endpoint}")
    private String endpoint;
    
    @Value("${aliyun.oss.accessKeyId}")
    private String accessKeyId;
    
    @Value("${aliyun.oss.accessKeySecret}")
    private String accessKeySecret;
    
    @Bean
    public OSS ossClient() {
        return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    }
}

在这个配置类中,我们通过 @Value 注解获取配置文件中的 endpointaccessKeyIdaccessKeySecret,然后创建一个 OSS 对象并返回。

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享