SpringBoot添加阿里云OOS服务
时间:2022-11-16 12:30:00
在 pom.xml 在文件中添加依赖
<dependency> <groupId>com.aliyun.ossgroupId> <artifactId>aliyun-sdk-ossartifactId> <version>x.x.xversion> dependency>
添加到配置文件中 OSS 配置项
aliyun: oss: # oss访问域名的外部服务 endpoint: oss-cn-beijing.aliyuncs.com # 用户标识用于访问身份验证 accessKeyId: LTAI5 # 用户用于加密签名字符串和oss密钥用于验证签名字符串 accessKeySecret: RYN # oss的存储空间 bucketName: itwanger-oss1 # 上传文件大小(M) maxSize: 3 # 上传文件夹路径前缀 dir: prefix: codingmore/images/
添加配置类OssClientConfig.java
@Configuration public class OssClientConfig {
@Value("${aliyun.oss.endpoint}") private String endpoint ; @Value("${aliyun.oss.accessKeyId}") private String accessKeyId ; @Value("${aliyun.oss.accessKeySecret}") private String accessKeySecret; @Bean public OSSClient createOssClient() {
return (OSSClient)new OSSClientBuilder(.build(endpoint, accessKeyId, accessKeySecret);
}
}
上传文件API (Controller)
@RestController
@RequestMapping("/upload")
public class OssController {
@Autowired
private OssService ossService;
@PostMapping("/files")
public String upload(@RequestParam("file") MultipartFile file, HttpServletRequest req) {
return ossService.upload(file);
}
}
上传文件API (Service)
@Service
public class OssService {
@Value("${aliyun.oss.maxSize}")
private int maxSize;
@Value("${aliyun.oss.bucketName}")
private String bucketName;
@Value("${aliyun.oss.dir.prefix}")
private String dirPrefix;
@Autowired
private OSSClient ossClient;
public String upload(MultipartFile file) {
String objectName = getBucketName(name);
// 创建PutObject请求。
ossClient.putObject(bucketName, objectName,inputStream);
return formatPath(objectName);
}
private String getBucketName(String url){
String ext = "";
for(String extItem:imageExtension){
if(url.indexOf(extItem) != -1){
ext = extItem;
break;
}
}
return dirPrefix+ DateUtil.today()+"/"+ IdUtil.randomUUID()+ext;
}
private String formatPath(String objectName){
return "https://" +bucketName+"."+ ossClient.getEndpoint().getHost() + "/" + objectName;
}
}