OSS文件上传
配置文件yml
aliyun:
# 以成都为例子,按照实际情况修改
endpoint: oss-cn-chengdu.aliyuncs.com
accessKeyId: *******************
accessKeySecret: *************************
bucketName: ********
配置信息获取
endpoint:
进入OSS工作台
在网址处查找地域属性,在其后加.aliyuncs.com
accessKeyId与accessKeySecret:
右上角个人信息处点击accessKey管理
点击继续使用
点击创建
验证后即可获得ID与Secret
bucketName:
在第一次开通OSS对象后需要创建OSS Bucket
点击立即创建
填入信息,标红处即为bucketName
配置完毕,进行代码测试
Upload:
@Slf4j
@RestController
public class UploadController {
@Autowired
private AliOSSUtils aliOSSUtils;
@PostMapping("/upload")
public AjaxResult upload(MultipartFile file) throws IOException {
//调用阿里云OSS工具类,将上传上来的文件存入阿里云
String url = aliOSSUtils.upload(file);
//将图片上传完成后的url返回,用于浏览器回显展示
return AjaxResult.success(url);
}
}
AliOSSUtils:
@Component
@ConfigurationProperties(prefix = "aliyun")
public class AliOSSUtils {
private String endpoint;
private String accessKeyId;
private String accessKeySecret;
private String bucketName;
public String getEndpoint() {
return endpoint;
}
public void setEndpoint(String endpoint) {
this.endpoint = endpoint;
}
public String getAccessKeyId() {
return accessKeyId;
}
public void setAccessKeyId(String accessKeyId) {
this.accessKeyId = accessKeyId;
}
public String getAccessKeySecret() {
return accessKeySecret;
}
public void setAccessKeySecret(String accessKeySecret) {
this.accessKeySecret = accessKeySecret;
}
public String getBucketName() {
return bucketName;
}
public void setBucketName(String bucketName) {
this.bucketName = bucketName;
}
/**
* 实现上传图片到OSS
*/
public String upload(MultipartFile multipartFile) throws IOException {
// 获取上传的文件的输入流
InputStream inputStream = multipartFile.getInputStream();
// 避免文件覆盖
String originalFilename = multipartFile.getOriginalFilename();
String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));
//上传文件到 OSS
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, fileName, inputStream);
//文件访问路径
String url = "https://" + bucketName + "." + endpoint + "/" + fileName;
// 关闭ossClient
ossClient.shutdown();
return url;// 把上传到oss的路径返回
}
}
代码出处:阿里云OSS的开通+配置及其使用_阿里云oss配置-CSDN博客略微修改
使用postman测试
将访问返回的url
下载了测试时上传的图片
查看OSS工作台
存中…(img-WixNJRuS-1703665776298)]
将访问返回的url
[外链图片转存中…(img-Y3IuTDHG-1703665776298)]
下载了测试时上传的图片
查看OSS工作台
[外链图片转存中…(img-ZMndNOj7-1703665776299)]
图片已放入Bucket对象