1.第一个依赖的工具类
@Component
public class AliyunCloudPriBucketUrlUtil {
//阿里云绑定的域名
@Value("${oss.aliyun-domain}")
private String aliyunDomain;
//阿里云路径前缀
@Value("${oss.aliyun-prefix}")
private String aliyunPrefix;
//阿里云EndPoint
@Value("${oss.aliyun-end-point}")
private String aliyunEndPoint;
//阿里云AccessKeyId
@Value("${oss.aliyun-access-key-id}")
private String aliyunAccessKeyId;
//阿里云AccessKeySecret
@Value("${oss.aliyun-access-key-secret}")
private String aliyunAccessKeySecret;
//阿里云BucketName
@Value("${oss.aliyun-bucket-name}")
private String aliyunBucketName;
//阿里云url签名过期时间
@Value("${oss.expiration}")
private Integer expiration;
/**
* 获取阿里云OSS私有BUCKET的外链(URL加签方式)
*/
public String getUrlBySign(String fileUrl) {
OSSClient ossClient = new OSSClient(aliyunEndPoint, aliyunAccessKeyId,
aliyunAccessKeySecret);
// 设置URL过期时间为1小时
Date expirationDate = new Date(new Date().getTime() + expiration * 1000);
String subStr = aliyunDomain + "/";
String urlKey = fileUrl.substring(subStr.length());
GeneratePresignedUrlRequest generatePresignedUrlRequest ;
generatePresignedUrlRequest = new GeneratePresignedUrlRequest(aliyunBucketName, urlKey);
generatePresignedUrlRequest.setExpiration(expirationDate);
URL url = ossClient.generatePresignedUrl(generatePresignedUrlRequest);
return url.toString();
}
}
2.第二个依赖的工具类
@Component
public class OSSFactory {
@Autowired
private CloudStorageConfig config;
public CloudStorageService build() {
if (config.getType().equals(OSSConstant.TYPE_QINIU)) {
return new QiniuCloudStorageService(config);
} else if (config.getType().equals(OSSConstant.TYPE_ALIYUN)) {
return new AliyunCloudStorageService(config);
} else if (config.getType().equals(OSSConstant.TYPE_QCLOUD)) {
return new QcloudCloudStorageService(config);
}
return null;
}
}
3.第三个依赖的配置类
public class OSSConstant {
//类型 1:七牛 2:阿里云 3:腾讯云
public final static Intege