图片上传工具之二:阿里对象存储OSS
一、注册一个阿里云账号阿里云登录页 (aliyun.com),并完成如下操作选择对象存储服务
1.找到对象存储服务,并创建一个Bucket
第一次应该是立即创建
选择之后会有一个创建,点击就会是下面这个界面,我指出的两个后面需要用到,然后选择私有,如果选择公共读要收取费用
2.获取自己的AccessKey id和 AccessKey secret
点击头像会有一个access Key管理,然后按照提示完成申请会出现这个,一定记住这个会用
二、开始整合
1.导入依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.30</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>aliyun-oss-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
2.编写配置文件
alibaba:
cloud:
access-key: ****** #自己的AccessKey id
secret-key: ****** #自己的AccessKey secret
oss:
endpoint: oss-cn-chengdu.aliyuncs.com #自己选择的位置
bucket-name: ****** #自己填写的bucket名称
#设置数据可接收大小
spring:
servlet:
multipart:
max-file-size: 200MB
max-request-size: 200MB
3.编写controller层
/**
* @Author: one piece
* @Description:
* @Date: 2023/12/1 16:34
*/
@RestController
@Slf4j
@RequestMapping("/file")
public class FileController {
//获取配置文件中的设置的桶名
@Value("${alibaba.cloud.oss.bucket-name}")
private String bucketName;
@Resource
private OSSClient ossClient;
@PostMapping("/upload")
public String upload(MultipartFile[] file) throws IOException {
log.debug(file.toString());
// 获取文件名
String fileName = file[0].getOriginalFilename();
fileName = UUID.randomUUID() + fileName.substring(fileName.lastIndexOf("."));
log.info(fileName);
// 获取文件输入流
InputStream inputStream = file[0].getInputStream();
ossClient.putObject(bucketName,fileName,inputStream);
// 计算过期时间
Date date = new Date(new Date().getTime() + 60 * 24 * 60 * 1000);
// 文件上传
URL url = ossClient.generatePresignedUrl(bucketName, fileName, date);
log.info(url.toString());
return url.toString();
}
}
4.测试
这里会返回图片的链接,在浏览器访问这个地址就可以查询到这张图片。
剩下怎么处理就是各位老板的工作啦。
感谢各位老板,祝各位老板在新的一年财源广进、步步高升。麻烦动动小手点个赞、点个关注。如果有需要学习的也可以在评论区留言。