- 引入阿里云OSS存储服务依赖
-
<!--OSS对象存储服务--> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.15.1</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> <!-- no more than 2.3.3--> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.3.3</version> </dependency> <!--会自动识别被@ConfigurationProperties标识的Bean对象 [可选 不会影响程序运行]--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency>
- 在yml配置文件里面设置OSS参数 这写参数可以登录自己的阿里云获取
-
aliyun: oss: endpoint: ********写自己的访问路径****** accessKeyId: ********写自己的Id****** accessKeySecret: ********写自己的密钥****** bucketName: ********写自己的bucket名字******
- 通过注入的方式,获取配置文件设置的OSS参数
-
package com.tq.utils; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Data @Component @ConfigurationProperties(prefix = "aliyun.oss") public class aliyunProperties { private String endpoint; private String accessKeyId; private String accessKeySecret; private String bucketName; }
- 复制粘贴的OSS工具类
-
package com.tq.utils; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.util.UUID; /** * 阿里云 OSS 工具类 */ @Component public class AliOSSUtils { @Autowired private aliyunProperties aliyunProperties; /** * 实现上传图片到OSS */ public String upload(MultipartFile file) throws IOException { // 获取阿里云OSS参数 String endpoint = aliyunProperties.getEndpoint(); String accessKeyId = aliyunProperties.getAccessKeyId(); String accessKeySecret = aliyunProperties.getAccessKeySecret(); String bucketName = aliyunProperties.getBucketName(); // 获取上传的文件的输入流 InputStream inputStream = file.getInputStream(); // 避免文件覆盖 String originalFilename = file.getOriginalFilename(); String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf(".")); //上传文件到 OSS OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); ossClient.putObject(bucketName, fileName, inputStream); //文件访问路径 String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName; // 关闭ossClient ossClient.shutdown(); return url;// 把上传到oss的路径返回 } }
[笔记] 阿里云OSS存储
于 2023-04-12 15:53:58 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)