问题描述:
在使用了很多版本阿里云oss版本之后,包括一些过期的方法之后,版本之间的注意点挺多,在众多版本之中找到一个最稳定,最适合自己的版本并集成工具类。这里采用静态集成,可改造为导入配置(Springboot资源加载方法等),不废话下面给出代码
代码展示:
maven
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.4.0</version>
</dependency>
工具类
import com.aliyun.oss.OSSClient;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
/**
* OSS工具
*
* @author liaoqian
* @date 2020/12/30
*/
@Slf4j
@SuppressWarnings("all")
public class OssUtil {
public static final String ACCESSKEYID = {ACCESSKEYID};
public static final String ACCESSKEYSECRET = {ACCESSKEYSECRET};
public static final String ENDPOINTIN = {ENDPOINTIN};
public static final String ENDPOINT = {ENDPOINT};
public static final String BUCKET = {BUCKET};
/**
* 上传到阿里oss
*
* @param file 文件
* @param path bucket的路径
* @return
*/
public static String upload(File file, String path) {
MultipartFile multipartFile = FileTypeUtil.file2MultipartFile(file, "");
return upload(multipartFile, path);
}
/**
* 上传到阿里oss
*
* @param multipartFile 多媒体文件
* @param path bucket的路径
* @return
*/
public static String upload(MultipartFile multipartFile, String path) {
if (multipartFile == null || StringUtils.isBlank(path)) {
return "";
}
String res = "";
try {
String fileName = multipartFile.getOriginalFilename();
String fileType = fileName.substring(fileName.lastIndexOf('.'), fileName.length());
fileName = System.currentTimeMillis() + fileType;
String accessKeyId = ACCESSKEYID;
String accessKeySecret = ACCESSKEYSECRET;
String endpoint = ENDPOINT;
String endpointIn = ENDPOINTIN;
String bucket = BUCKET;
String key = path + "/";
String ossFileUrl = key + fileName;
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucket, ossFileUrl, multipartFile.getInputStream());
ossClient.shutdown();
res = "http://" + bucket + "." + endpoint + "/" + ossFileUrl;
} catch (Exception e) {
log.error("com.geek.abc.pss.util.OssUtil(file,path) 上传图片发生了异常 -->{}", e);
} finally {
log.info("url --> {}", res);
return res;
}
}
}