SpringBoot+Vue 博客系统(五):整合阿里云OSS

签名:但行好事,莫问前程。

SpringBoot+Vue 博客系统(连载系列)

在这里插入图片描述


YangCunle`s Blog 博客网址:http://www.yangcunle.com


SpringBoot+Vue 博客系统(一):个人网站的由来

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工具类上传文件到阿里云服务器等验证。如果对你有所帮助,请一键三连。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值