springboot整合阿里云oss对象存储
官网文档https://help.aliyun.com/document_detail/32009.html申请账号登录阿里云官网:搜索RAM->进入RAM 访问控制。创建用户:授予权限:记录你的AccessKey ID和AccessKey Secret信息:AccessKey IDXXXXXXAccessKey SecretXXXXXX开启OSS 对象存储去官网登录阿里云,开通oss对象存
·
官网文档
https://help.aliyun.com/document_detail/32009.html
申请账号
登录阿里云官网:
搜索RAM->进入RAM 访问控制。
创建用户:
授予权限:
记录你的 AccessKey ID和AccessKey Secret信息:
AccessKey ID | XXXXXX |
---|---|
AccessKey Secret | XXXXXX |
开启OSS 对象存储
去官网登录阿里云,开通oss对象存储
创建Bucket:
信息确认无误后,点击确定:
记录地域地址:
添加配置文件
文件上传接口开发
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
测试
上传成功!
更多推荐
所有评论(0)