目录
一 导入依赖
<dependency>
<groupId>OSSUtils</groupId>
<artifactId>ecc-oss-utils</artifactId>
<version>0.0.2</version>
</dependency>
二 上传接口
2.1 OSS基础配置
ACCESS_KEY_ID=DDSFsdfsdfF5IoOlwV
ACCESS_KEY_SECRET=4sdfUsdfdsfeW4sdfds2tQ4vJ
ENDPOINT=http://oss-cn-shenzhen.aliyuncs.com
BUCKET_NAME=Sdfd-sdfds
FOLDER:上传的文件夹(如:prod)
public static String uploadOSSFile(File file) {
// 上传到阿里云
OSSClient ossClient = EccOSSClientUtils.getOSSClient(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
String url = EccOSSClientUtils.uploadObject(ossClient, file, BUCKET_NAME, FOLDER);
return url;
}
三 删除阿里云OSS文件
public static void deleteOSSFile(String url) {
int indexOf = url.indexOf("?");
url = url.substring(0, indexOf);
String[] split = url.split("/");
String fileName = split[split.length-1];
OSSClient ossClient = EccOSSClientUtils.getOSSClient(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
// 删除文件
EccOSSClientUtils.deleteFile(ossClient, BUCKET_NAME, FOLDER, fileName);
ossClient.shutdown();
}
四 文件先存储至本地服务器(springboot方式)
主要解决方式:一般先存储在本地服务器,然后最后上传至阿里云
4.1 配置文件添加
hcl.upload-path=D:/hcl-file/
spring.resources.static-locations=classpath:/public/,file:${hcl.upload-path}
@Override
public String uploadDraft(HttpServletRequest request,MultipartFile uploadFile) {
try {
String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd/"));
File file = new File(uploadPath + format);
if (!file.isDirectory()) {
file.mkdirs();
}
String oldName = uploadFile.getOriginalFilename();
String newName = UUID.randomUUID().toString().replace("-","") + oldName.substring(oldName.lastIndexOf("."));
uploadFile.transferTo(new File(file,newName));
String filePath = format + newName;
filePath = request.getScheme() + "://" + request.getServerName()+ ":" + request.getServerPort() + File.separator+ filePath;
return filePath;
}catch (IOException e){
throw new RuntimeException("文件上传失败!");
}
}