签名:但行好事,莫问前程。
SpringBoot+Vue 博客系统(连载系列)
YangCunle`s Blog 博客网址:http://www.yangcunle.com
SpringBoot+Vue 博客系统(一):个人网站的由来
SpringBoot+Vue 博客系统(二):个人博客的搭建
SpringBoot+Vue 博客系统(三):个人博客的设计
SpringBoot+Vue 博客系统(五):整合阿里云OSS
SpringBoot+Vue 博客系统(六):整合Redis
SpringBoot+Vue 博客系统(七):Blog前端Vue项目的搭建
SpringBoot+Vue 博客系统(八):前端项目引入Element-UI
SpringBoot+Vue 博客系统(九):安装Axios处理跨域
SpringBoot+Vue 博客系统(十):VUE路由 vue-route
SpringBoot+Vue 博客系统(十一):博客后台管理
SpringBoot+Vue 博客系统(十二):博客前台展示
SpringBoot+Vue 博客系统(十三):项目打包部署到服务器
文章目录
一、开通阿里云OSS
1、进入阿里云官网,点击【产品】,选择【阿里云OSS】
2、来到阿里云OSS页面
点击立即开通
勾选服务协议,点击【立即开通】
3、成功开通阿里云OSS
开通完成之后,邮箱就会收到开通成功的邮件
二、使用阿里云OSS
1、开通完成之后,来到【OSS管理控制台】
2、创建Bucket【存储空间】
2.1填入相关信息
2.2存储空间创建好了
2.3上传文件测试一下
上传成功
找到文件管理,预览一下刚才上传的照片
OK 手动上传文件成功!
三、博客项目整合阿里云OSS
1、找到OSS的开发文档
在SDK示例中找到Java开发文档
2、博客项目引入OSS依赖
博客项目引入OSS依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
3、编写OSS文件上传工具类
// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 填写Bucket名称,例如examplebucket。
String bucketName = "examplebucket";
// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
String objectName = "exampledir/exampleobject.txt";
// 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。
// 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
String filePath= "D:\\localpath\\examplefile.txt";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
InputStream inputStream = new FileInputStream(filePath);
// 创建PutObject请求。
ossClient.putObject(bucketName, objectName, inputStream);
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
4、其中需要的OSS参数有如下
点击右上角头像有个AccessKey管理
选择子用户AccessKey管理
进入管理页面
创建一个博客系统的子用户AccessKey
点击确定 有个安全验证
用手机验证码验证一下就行
创建成功
给子账户只赋予OSS的读写权限
5、设置跨域规则
设置跨域请求完成
四、编写OSS文件上传工具类
参考SDK开发文档快速入门
备注:阿里云账号AccessKey相关内容已经封装
public class OssUtil {
public static String uploadOSS(MultipartFile multipartFile) {
// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
String endpoint = OssParam.ENDPOINT;
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
String accessKeyId = OssParam.ACCESS_KEY_ID;
String accessKeySecret = OssParam.ACCESS_KEY_SECRET;
// 填写Bucket名称
String bucketName = OssParam.BUCKET_NAME;
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
// 获取文件上传的流
InputStream inputStream = multipartFile.getInputStream();
// 获取文件名称
String originalFilename = multipartFile.getOriginalFilename();
// 文件后缀
String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
// 新文件名称
String newFileName = UUID.randomUUID().toString() + suffix;
// 文件上传到阿里云OSS服务器
ossClient.putObject(bucketName, newFileName, inputStream);
// 返回阿里云文件保存路径
return "https://" + bucketName + "." + endpoint + "/" + newFileName;
} catch (Exception e) {
e.printStackTrace();
return "文件上传失败";
} finally {
// 关闭 ossClient
ossClient.shutdown();
}
}
}
该工具类支持文件上传到阿里云OSS,并返回图片地址
五、测试文件上传功能
@RestController
@RequestMapping("/blog")
public class BlogController {
//获取日志记录器对象
private final Logger logger = Logger.getLogger(BlogController.class);
/**
* 文件上传
* @param file
* @return
*/
@GetMapping("/fileUpload")
public String fileUpload(@RequestParam("file") MultipartFile file) {
logger.info("文件上传");
return OssUtil.uploadOSS(file);
}
}
ApiPost测试文件上传
可以成功上传,并返回文件地址
https://yangcunle-blog.oss-cn-hangzhou.aliyuncs.com/161c0548-f1d3-4346-9a5c-31d720ce6835.png
图片可以正常下载了 O(∩_∩)O哈哈~
总结
以上记录了如何开通阿里云OSS、在项目中整合OSS、OSS文件上传工具类的编写、测试用OSS工具类上传文件到阿里云服务器等验证。如果对你有所帮助,请一键三连。