OSS依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
代码工具类
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
@Slf4j
@Component
public class UploadFileUtils {
public static String uploadFileToOSS(MultipartFile multipartFile, String fileCatalog) {
String endpoint = "xxxxxxxxx.com";
String accessKeyId = "xxxxxxxxxxxxxx";
String accessKeySecret = "xxxxxxxxxxx";
String bucketName = "xxxxxx-oss";
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
InputStream inputStream=multipartFile.getInputStream();
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy/MM/dd");
String datePath=dateFormat.format(new Date());
String originName= multipartFile.getOriginalFilename();
String fileName = UUID.randomUUID().toString();
String suffix=originName.substring(originName.lastIndexOf("."));
String newName=fileName+suffix;
String fileUrl="xxxxx"+fileCatalog+datePath+"/"+newName;
ossClient.putObject(bucketName,fileUrl,inputStream);
String filePath="https://"+bucketName+"."+endpoint+"/"+fileUrl;
log.info("文件已上传:"+filePath);
return filePath;
} catch (Exception e) {
e.printStackTrace();
return "fail";
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
public static String uploadFileToECS(MultipartFile multipartFile, String fileCatalog) {
SimpleDateFormat dateFormat=new SimpleDateFormat("yyMMdd");
String datePath=dateFormat.format(new Date());
String originName= multipartFile.getOriginalFilename();
String fileName = UUID.randomUUID().toString();
String suffix=originName.substring(originName.lastIndexOf("."));
String newName=datePath+fileName+suffix;
try {
String path = "/www/tomcat/uploadfile";
String url="https://主机号:端口号/uploadfile";
File folder=new File(path+fileCatalog);
if (!folder.isDirectory()) {
folder.mkdirs();
}
multipartFile.transferTo(new File(folder+"/"+newName));
String filePath = url+fileCatalog+newName;
return filePath;
} catch (Exception e) {
return null;
}
}
public static String uploadFileToPS(MultipartFile multipartFile, String fileCatalog,HttpServletRequest req) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");
String realPath = req.getSession().getServletContext().getRealPath(fileCatalog);
String format = sdf.format(new Date());
File folder = new File(realPath + format);
if (!folder.isDirectory()) {
folder.mkdirs();
}
String oldName = multipartFile.getOriginalFilename();
String newName = UUID.randomUUID().toString()
+ oldName.substring(oldName.lastIndexOf("."), oldName.length());
try {
multipartFile.transferTo(new File(folder, newName));
String filePath = req.getScheme() + "://" + req.getServerName()
+ ":"+ "/file"+fileCatalog+ format + newName;
log.info("文件已上传:"+filePath);
return filePath;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}