Featured image of post Java工程师 实战 云对象存储实战

Java工程师 实战 云对象存储实战

🌏Java工程师 云对象存储实战 🎯 这篇文章用于记录 云对象存储 服务的实战开发

🎄说明

云对象存储实战 将运用于我的 第二个 个人项目(链接如下)

https://bigbigmeng.cloud/posts/myprojects/javaee%E6%89%8B%E6%9C%BA%E5%95%86%E5%9F%8E%E7%A7%92%E6%9D%80/

🎄准备工作

🍭登录阿里云进入对象存储服务并创建存储桶 下图是我之前创建好的

🎄使用 SDK 上传文件到阿里云对象 Bucket

🍭引入 OSS 开发依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alicloud-oss</artifactId>
    <version>2.1.0.RELEASE</version>
</dependency>

🍭应用到项目的用户头像上传功能

Controller具体应用代码如下

//处理头像 如果图片不为空且路径和数据库数据不同 则需要更新图片
if (imgPath!=null && !imgPath.isEmpty()) {
    if(exsitOne != null){ // 用户存在
        // 如果传入的图片和原来的不一样 才需要更新图片
        String originalFilename = imgPath.getOriginalFilename();
        //String newName = UUID.randomUUID().toString() + "_" + System.currentTimeMillis() + originalFilename;
        // 创建动态保存目录 这里我们需要指定保存文件的绝对路径
        try {
            /***************** 上传到本地 ****************/
            imgPath.transferTo(new File(file.getAbsolutePath() + "/" + originalFilename));

            /***************** 20230907 上传到阿里云oss ****************/
            String endpoint = "https://oss-cn-qingdao.aliyuncs.com";
            String accessKeyId = "LTAI5t7fGxeZsQWi6VKKPkfD";
            String accessKeySecret = "qTXZPzgXRAD4Ite3kmFSr6zcKuan5z";
            String bucketName = "bigxmeng-bucket-10000";
            String objectName = originalFilename; // 上传到bucket之后的文件名
            // 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
            // 创建PutObjectRequest对象 把本地已经存在的图片上传到阿里云
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(file.getAbsolutePath() + "/" + originalFilename));
            // 设置该属性可以返回response。如果不设置,则返回的response为空。
            putObjectRequest.setProcess("true");
            // 上传文件。
            PutObjectResult result = ossClient.putObject(putObjectRequest);
            // 如果上传成功,则返回200。
            System.out.println("上传到阿里云结果:" + result.getResponse().getStatusCode());
        }catch (Exception e){
            System.out.println("上传图片出现问题。。。");
        } finally {
            if (ossClient != null) ossClient.shutdown();
        }
        userImgPath = JinConstant.default_imgPath + originalFilename;

    }else { // 该用户不存在 则上传默认头像
        userImgPath = JinConstant.default_imgPath + JinConstant.default_imgName;
        imgPath.transferTo(new File(file.getAbsolutePath() + JinConstant.default_imgName));
    }
}

🍭上传后运行项目测试

🍭进入个人中心页面修改个人信息

🍭修改个人信息

🍭页面呈现的HTML和呈现结果如下

🍭查看图片是否上传到阿里云oss

✨已成功上传~