1.简介
阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。您可以通过本文档提供的简单的REST接口,在任何时间、任何地点、任何互联网设备上进行上传和下载数据。基于OSS,您可以搭建出各种多媒体分享网站、网盘、个人和企业数据备份等基于大规模数据的服务。
2.资源术语
详情请参考OSS官网添加链接描述
3.OSS的使用
3.1.在Maven项目中加入依赖项
在gulimall-product项目中加入
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
详情参考添加链接描述
3.2.文件上传测试
/**
* 测试OSS
* @throws FileNotFoundException
*/
@Test
public void testUpload() throws FileNotFoundException {
/**
* yourEndpoint填写Bucket所在地域对应的Endpoint。
* 以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
*/
String endpoint = "oss-cn-beijing.aliyuncs.com";
/**
* 阿里云账号AccessKey拥有所有API的访问权限,风险很高。
* 强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
* LTAI5tCwSsEYQkCMdANL8xQ3
* ycklINlm4j24G4XO8zwbSGo4BniKz4
*/
String accessKeyId = "LTAI5tCwSsEYQkCMdANL8xQ3";
String accessKeySecret = "ycklINlm4j24G4XO8zwbSGo4BniKz4";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
InputStream inputStream = new FileInputStream("C:\\Users\\hong\\Pictures\\Camera Roll\\鸿.JPG");
/**
* 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。
* Object完整路径中不能包含Bucket名称。
*/
ossClient.putObject("gulimall-zfh", "鸿.JPG", inputStream);
// 关闭OSSClient。
ossClient.shutdown();
System.out.println("上传成功!");
}
详情参考添加链接描述
4.SpringCloud Alibaba-OSS
4.1.在gulimall-common项目pom中加入spring-cloud-alicloud-oss
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alicloud-oss</artifactId>
</dependency>
spring-cloud-alicloud-oss源码中有aliyun-sdk-oss
4.2.在配置文件中配置accessKeyId, secretAccessKey,endpoint
alicloud:
access-key: LTAI5tCwSsEYQkCMdANL8xQ3
secret-key: ycklINlm4j24G4XO8zwbSGo4BniKz4
oss:
endpoint: oss-cn-beijing.aliyuncs.com
4.3.使用OSSClient
@Autowired
private OSSClient ossClient;
/**
* 测试SpringCloud-Alibaba-OSS
* @throws FileNotFoundException
*/
@Test
public void testOSSUpload() throws FileNotFoundException {
// 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
InputStream inputStream = new FileInputStream("C:\\Users\\hong\\Pictures\\Camera Roll\\zfh03.JPG");
/**
* 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。
* Object完整路径中不能包含Bucket名称。
*/
ossClient.putObject("gulimall-zfh", "zfh03.JPG", inputStream);
// 关闭OSSClient。
ossClient.shutdown();
System.out.println("上传成功!");
}
详情参考Spring Cloud Alibaba官网添加链接描述