资源下载链路打通

This commit is contained in:
limqhz
2022-05-03 17:15:54 +08:00
parent f44f36356d
commit f271221d8b
39 changed files with 888 additions and 312 deletions

View File

@@ -0,0 +1,115 @@
package com.quinn.utils;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.CannedAccessControlList;
import com.aliyun.oss.model.OSSObject;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.Random;
/**
* 阿里云 OSS文件类
*
* @author zuojie.liang
*/
@Component
public class OSSClientUtil {
Log log = LogFactory.getLog(OSSClientUtil.class);
/**
* 协议
*/
@Value("${oss.protocol}")
private String protocol;
/**
* 仓库名称
*/
@Value("${oss.name}")
private String bucketName;
/**
* 公网节点
*/
@Value("${oss.endPoint}")
private String endpoint;
@Value("${oss.accessKeyId}")
private String accessKeyId;
/**
* API访问值
*/
@Value("${oss.accessKeySecret}")
private String accessKeySecret;
@Value("${oss.url}")
private String url;
private OSSClient ossClient;
public String upload(String filename, InputStream file) {
return uploadImg(file, filename);
}
/**
* 上传图片
*
* @param file
* @return
*/
public String uploadImg(MultipartFile file) throws IOException {
String originalFilename = file.getOriginalFilename();
return uploadImg(file.getInputStream(), originalFilename);
}
public String uploadImg(InputStream inputStream, String originalFilename) {
String backUrl = "";
try {
ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
String substring = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
Random random = new Random();
String name = random.nextInt(10000) + System.currentTimeMillis() + substring;
backUrl = "imageDir/" + name;
// 上传文件
ossClient.putObject(bucketName, backUrl, inputStream);
ossClient.setObjectAcl(bucketName, backUrl, CannedAccessControlList.PublicRead);
// 判断是否上传成功
boolean uploadResult = ossClient.doesObjectExist(bucketName, backUrl);
if (uploadResult) {
backUrl = getImgUrl(name);
} else {
backUrl = "";
}
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return backUrl;
}
/**
* 获得图片路径
*
* @param fileUrl
* @return
*/
public String getImgUrl(String fileUrl) {
if (!StringUtils.isEmpty(fileUrl)) {
String[] split = fileUrl.split("/");
return url + "imageDir/" + split[split.length - 1];
}
return null;
}
public InputStream downloadFile(String objName){
// ossObject包含文件所在的存储空间名称、文件名称、文件元信息以及一个输入流。
ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
OSSObject ossObject = ossClient.getObject(bucketName, objName);
return ossObject.getObjectContent();
}
}

View File

@@ -0,0 +1,28 @@
package com.quinn.utils;
import java.util.StringTokenizer;
import java.util.UUID;
/**
* @title UUIDGenerator
* @description 随机生成32位UUID格式如a11686c39a154cf2a5238fb14cf3d097
* <br>
* <br>
*/
public class UUIDGenerator {
/**
* 主键生成机制
* @return
*/
public static String randomUUID(){
String result="";
UUID uuid = UUID.randomUUID();
String temp=uuid.toString();
StringTokenizer token=new StringTokenizer(temp,"-");
while(token.hasMoreTokens()){
result+=token.nextToken();
}
return result;
}
}