springboot整合阿里云oss对象存储

官网文档

https://help.aliyun.com/document_detail/32009.html

申请账号

登录阿里云官网:
springboot整合阿里云oss对象存储_第1张图片
搜索RAM->进入RAM 访问控制。
springboot整合阿里云oss对象存储_第2张图片
创建用户:
springboot整合阿里云oss对象存储_第3张图片
springboot整合阿里云oss对象存储_第4张图片
授予权限:
springboot整合阿里云oss对象存储_第5张图片
记录你的 AccessKey ID和AccessKey Secret信息:

AccessKey ID XXXXXX
AccessKey Secret XXXXXX

开启OSS 对象存储

去官网登录阿里云,开通oss对象存储
springboot整合阿里云oss对象存储_第6张图片
创建Bucket:
springboot整合阿里云oss对象存储_第7张图片
springboot整合阿里云oss对象存储_第8张图片

信息确认无误后,点击确定:
记录地域地址:
springboot整合阿里云oss对象存储_第9张图片
添加配置文件
springboot整合阿里云oss对象存储_第10张图片

文件上传接口开发

package com.zhubayi.adminservice.controller;

import cn.hutool.core.date.DateUtil;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.zhubayi.common.model.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * @author zhubayi
 */
@RestController
@Api(tags = "文件上传")
public class FileController {

    @Value("${oss.bucket.name:zhubayi-exchange}")
    private String bucketName ;

    @Value("${spring.cloud.alicloud.oss.endpoint}")
    private String endPoint ;
    // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
    @Value("${spring.cloud.alicloud.access-key}")
    private String accessKeyId ;
    @Value("${spring.cloud.alicloud.secret-key}")
    private String accessKeySecret ;


    @ApiOperation(value = "文件上传")
    @PostMapping("/image/AliYunImgUpload")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "file" ,value = "你要上传的文件")
    })
    public R<String> fileUpload(@RequestParam("file") MultipartFile file) throws IOException {
        /**
         * 3 个参数:
         * 1 bucketName
         * 2 FileName
         * 3 文件的路径
         */
        String fileName = DateUtil.today().replaceAll("-","/")+"/"+file.getOriginalFilename() ;
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, accessKeySecret);
        ossClient.putObject(bucketName, fileName, file.getInputStream()); // 文件上传

        // 上传成功后,路径为https://exchange-imgs.oss-cn-beijing.aliyuncs.com/2020/10/10/1588586643_meitu_1.jpg
        return R.ok("https://" + bucketName+ "."+ endPoint +"/"+ fileName) ;

    }
}

postman测试
springboot整合阿里云oss对象存储_第11张图片
springboot整合阿里云oss对象存储_第12张图片
上传成功!

你可能感兴趣的:(java,java,阿里云,spring,boot)