1、引入maven依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.4.2</version>
</dependency>
2、准备好相关配置信息
#阿里云oss文件储存
oss:
endPoint: xxxxxxxxxx.com
accessKeyId: **********
accessKeySecret: ***************
bucketName: test
3、编写好utils工具类
public class AliYunOssClientUtils {
/**
* 创建阿里云oss客户端连接对象
* @param endPoint 连接地址
* @param accessKeyId 连接账户
* @param accessKeySecret 连接密码
* @return
*/
public static OSSClient getOSSClient(String endPoint, String accessKeyId, String accessKeySecret) {
return new OSSClient(endPoint, accessKeyId, accessKeySecret);
}
/**
* 创建储存空间
* @param ossClient oss连接对象
* @param bucketName 需要创建的空间名
* @return
*/
public static String createBucketName(OSSClient ossClient, String bucketName) {
// 存储空间
final String bucketNames = bucketName;
if (!ossClient.doesBucketExist(bucketName)) {
Bucket bucket = ossClient.createBucket(bucketName);
return bucket.getName();
}
return bucketNames;
}
/**
* 创建虚拟文件夹
* @param ossClient oss连接对象
* @param bucketName oss的空间名
* @param folder 需要创建的文件夹名称
* @return
*/
public static String createFolder(OSSClient ossClient, String bucketName, String folder) {
final String keySuffixWithSlash = folder;
if (!ossClient.doesObjectExist(bucketName, keySuffixWithSlash)) {
ossClient.putObject(bucketName, keySuffixWithSlash, new ByteArrayInputStream(new byte[0]));
OSSObject ossObject = ossClient.getObject(bucketName, keySuffixWithSlash);
String fileDir = ossObject.getKey();
return fileDir;
}
return keySuffixWithSlash;
}
/**
* 上传到oss
* @param ossClient oss连接对象
* @param filePath 需要上传的文件路径
* @param bucketName 上传到oss的空间名
* @param parentFileName 上层目录名【评审安排/造价文件】
* @param parentDateTime 本次解析邮件的【年-月-日 时-分-秒】
* @return
*/
public static String uploadObjectOss(OSSClient ossClient, String filePath, String bucketName, String parentFileName, Date parentDateTime) {
File file = new File(filePath);
String yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd").format(parentDateTime);
String hhMMss = new SimpleDateFormat("HH:mm:ss").format(parentDateTime);
String fileName = parentFileName + "/" + yyyyMMdd + "/" + hhMMss + "/" + file.getName().replace("+", "");
try {
System.out.println("bucketName:" + bucketName);
System.out.println("文件存放路径:" + fileName);
ossClient.putObject(bucketName, fileName, file);
} catch (Exception e) {
e.printStackTrace();
} finally {
ossClient.shutdown();
}
return fileName;
}
}