# 阿里云对象存储 OSS
作者:agency (opens new window),编程导航星球 (opens new window) 编号 17494
# 1 在官网注册账号
官网地址:https://home.console.aliyun.com/ (opens new window)
# 2 在官网产品中开启对象存储 oss
第一次使用会先开启对象存储服务,用量小是免费使用的
# 3 创建一个对象存储空间 bucket
定义不可重复的名字,选择本地冗余存储(省流)
查看存储空间列表
# 4 获取上传密钥
自己生成一个即可
# 5 上传文件测试
官网中有详细教程,以表单上传为例
https://help.aliyun.com/zh/oss/developer-reference/form-upload-1?spm=a2c4g.11186623.0.0.46cb6d86hqmZRz (opens new window)
# 5.1 进行 Java 安装及初始化
引入pom 依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
1
2
3
4
5
2
3
4
5
配置密钥参数
oss:
aliyun:
endpoint: oss-cn-beijing.aliyuncs.com #Bucket所在地域对应的Endpoint
accessKeyId: #填写自己的keyId
accessKeySecret: #填写自己的KeySecret
bucket: huimin-code #存储空间列表名称
domain: https://huimin-code.oss-cn-beijing.aliyuncs.com/ #以北京为例,返回前端用于组合文件
1
2
3
4
5
6
7
2
3
4
5
6
7
配置并创建 OssClient,也可根据官网教程来
@Configuration
public class OssAC {
@Value("${oss.aliyun.endpoint}")
public String ENDPOINT;
@Value("${oss.aliyun.bucket}")
public static String BUCKET;
@Value("${oss.aliyun.domain}")
public static String DOMAIN;
@Value("${oss.aliyun.accessKeyId}")
public String ACCESSKEY_ID;
@Value("${oss.aliyun.accessKeySecret}")
public String ACCESSKEY_SECRET;
//初始化OSS
@Bean
public OSS oss(){
return new OSSClientBuilder().build(ENDPOINT,ACCESSKEY_ID, ACCESSKEY_SECRET);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 5.2 上传文件测试,表单上传
//上传证件照
@ApiOperation("上传证件照")
@PostMapping("/upload")
public String upload2(@RequestParam("file") MultipartFile multipartFile){
try {
InputStream inputStream = multipartFile.getInputStream();
//获取上传文件名称
String fullename =multipartFile.getOriginalFilename();
//截取文件扩展名
String ext = fullename.substring(fullename.lastIndexOf("."));
//自定义文件名称
String fileName = System.currentTimeMillis()+ext;
// 组合阿里云OSS上传参数 依次为 存储空间名,文件名(可以包括文件夹),文件流
// 注意对象存储没有文件夹概念,如果要区分文件可以再文件名加/ eg:/2021/04/16/202111222555.png
PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKET,fileName,inputStream);
// 上传
oss.putObject(putObjectRequest);
return DOMAIN+fileName;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
使用 postman 进行测试,要选择 post 请求,表单形式提交,上传文件,
返回地址,可以复制地址在浏览器输入查看,如果是报没权限的错误,进行下面设置,