前言
本文主要介绍 Spring Boot 项目如何集成 Alibaba 的 OSS 服务(对象存储),教程内容同样适用于 Spring Cloud 项目。
提示
1、Spring Cloud 项目不建议继续使用 spring-cloud-starter-alicloud-oss
组件,尤其是较新版本的 Spring Cloud(例如 2021.0.1
版本),毕竟 Alibaba OSS 的官方文档也移除了该组件的使用说明。
2、Alibaba OSS 更多的使用教程请查看 官方文档。
版本说明
Spring Boot | Spring Boot Alibaba |
---|
2.6.3 | 1.0.0 |
Maven 依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>aliyun-oss-spring-boot-starter</artifactId> </dependency> </dependencies>
<dependencyManagement> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.6.3</version> <scope>import</scope> <type>pom</type> </dependency>
<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>aliyun-spring-boot-dependencies</artifactId> <version>1.0.0</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement>
|
YAML 配置内容
在 Spring Boot 的 application.yml
文件中配置 Alibaba OSS 的 accessKeyId
、secretAccessKey
、endpoint
1 2 3 4 5 6
| alibaba: cloud: access-key: *** secret-key: *** oss: endpoint: ***
|
Java 测试代码
运行下述代码之前,记得将 BUCKET_NAME
更改为你自己的存储桶的名称。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| import com.aliyun.oss.OSSClient; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream;
@SpringBootTest public class OssTest {
private static final String BUCKET_NAME = "your-bucket"; @Resource private OSSClient ossClient;
@Test public void uploadFile() throws FileNotFoundException { String objectName = "upload.jpg"; String filePath = "/tmp/images/upload.jpg"; InputStream inputStream = new FileInputStream(filePath); ossClient.putObject(BUCKET_NAME, objectName, inputStream); } }
|