阿里云oss图片上传

背景

上周接到一个新的需求,要在客户端上报图片信息,以前是存在七牛上,现在要全部转到阿里云的oss上,然后那周基本都在啃阿里云的官方文档,最后完成了这个需求,现在来分享一下Java开发的SpringBoot项目怎么引入oss并且使用还有我的踩坑经历。

阿里云oss使用

1、先引入maven依赖

1
2
3
4
5
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.4.2</version>
</dependency>

2、编写配置类获取ossClient对象

1
2
3
4
5
6
7
8
9
10
11
12
13
@Value("${aliyun.oss.endpoint}")
private String endpoint;

@Value("${aliyun.accessKeyId}")
private String accessKeyId;

@Value("${aliyun.accessKeySecret}")
private String accessKeySecret;

@Bean
public OSSClient ossClient() {
return new OSSClient(endpoint, accessKeyId, accessKeySecret);
}

endpoint:你的endpoint,在阿里云oss控制台可以看到
accessKeyId:你的AccessKey,创建bucketName就可以看到
accessKeySecret:你的SecretKey,创建bucketName就可以看到

3、编写上传图片的代码

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
36
37
38
@Value("${aliyun.oss.bucketName}")
private String bucketName;

// urlPrefix: http://bucketName.endpoint/,bucketName喝endpoint在阿里云oss控制台都可以看到
@Value("${aliyun.oss.urlPrefix}")
private String urlPrefix;

private static final String[] IMAGE_TYPE = new String[]{".jpg", ".jpeg", ".png"};

public void add(FeedbackRequest data) {

// 阿里云oss图片上传
if (data.getFeedbackImgs() != null) {
if (!data.getFeedbackImgs().isEmpty()) {
String fileName = data.getFeedbackImgs().getOriginalFilename();
String filePath = this.getFilePath(fileName);

boolean isImage = false;
for (String type : IMAGE_TYPE) {
if (StringUtils.endsWithIgnoreCase(fileName, type)) {
isImage = true;
break;
}
}

if (!isImage) {
//格式错误
throw new RuntimeException("格式错误,必须是图片格式");
}

try {
ossClient.putObject(bucketName, filePath, new ByteArrayInputStream(data.getFeedbackImgs().getBytes()));
} catch (Exception ex) {
log.error("阿里云oss出错", ex);
}
}
}
}

4、上传完到服务器查看图片

用阿里云oss提供的OSS浏览器,然后根据AccessKey和SecretKey就可以登陆上去查看图片信息
在这里插入图片描述

踩坑提示

上传完图片会生成一个url链接,直接浏览器访问会报“You have no right to access this object because of bucket acl.”,这个是因为创建bucketName的时候RAM访问控制选择为公共读即可解决。

总结

以上就是上周经历的一次阿里云oss图片上传的经历,我已经把业务逻辑全部过滤掉,只剩下阿里云oss的主要代码和流程。在这里主要就是记录我工作上遇到的一些问题的一些记录,希望对你们有所帮助。

-------------本文结束感谢您的阅读-------------

本文标题:阿里云oss图片上传

文章作者:god-jiang

发布时间:2021年06月19日 - 20:41:23

最后更新:2021年06月19日 - 20:46:25

原始链接:https://god-jiang.github.io/2021/06/19/阿里云oss图片上传/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

创作不易,您的支持就是我坚持的动力,谢谢大家!
0%