1、开通阿里云OSS
1.1进入阿里云官网,点击【产品】,选择【阿里云OSS】
1.2来到阿里云OSS页面
1.3成功开通阿里云OSS

2、使用阿里云OSS
2.1开通完成之后,来到【OSS管理控制台】
2.2创建Bucket【存储空间】
2.2.1填入相关信息

2.2.2存储空间创建好了
2.3上传文件测试一下

上传成功
找到文件管理,预览一下刚才上传的照片
OK 手动上传文件成功!
3、博客项目整合阿里云OSS
3.1找到OSS的开发文档
3.2博客项目引入OSS依赖
复制依赖,粘贴到博客项目的pom文件中
<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency>
3.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();}}}
3.4其中需要的OSS参数有如下
点击右上角头像有个AccessKey管理
选择子用户AccessKey管理
进入管理页面
创建一个博客系统的子用户AccessKey
点击确定 有个安全验证
用手机验证码验证一下就行
创建成功
给子账户只赋予OSS的读写权限
3.5设置跨域规则

4、编写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 {// 关闭 ossClientossClient.shutdown();}}}
5、测试文件上传功能
@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哈哈~


在SDK示例中找到Java开发文档


