阿里云oss图片上传
Posted god-jiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云oss图片上传相关的知识,希望对你有一定的参考价值。
背景
上周接到一个新的需求,要在客户端上报图片信息,以前是存在七牛上,现在要全部转到阿里云的oss上,然后那周基本都在啃阿里云的官方文档,最后完成了这个需求,现在来分享一下Java开发的SpringBoot项目怎么引入oss并且使用还有我的踩坑经历。
阿里云oss使用
1、先引入maven依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.4.2</version>
</dependency>
2、编写配置类获取ossClient对象
@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、编写上传图片的代码
@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的主要代码和流程。在这里主要就是记录我工作上遇到的一些问题的一些记录,希望对你们有所帮助。
PS:对基金感兴趣的可以关注【公众号:牛熊无悔】,每日3点前更新操作,一起吃肉
以上是关于阿里云oss图片上传的主要内容,如果未能解决你的问题,请参考以下文章