oss路径是一个比较敏感的url路径,有的时候需要用内网、有的时候需要外网,有的时候需要/有的时候不需要/,这个工具类就是帮忙干这事儿的。
public class OSSUrlUtil {
public static final String[] OSS_DOMAINS = new String[]{
"https://biz.s3.url.com/",
"http://biz.s3.url.com/",
"https://biz.s3-internal.url.com/",
"http://biz.s3-internal.url.com/",
"http://s3.url.com/biz/",
"https://s3.url.com/biz/",
"http://s3-internal.url.com/biz/",
"https://s3-internal.url.com/biz/"
};
/**
* 去除掉oss的域名前缀
* @param url
* @return
*/
public static String delOssDomainAndSign(String url) {
if (StringUtils.isBlank(url)) {
return null;
}
for (String domain: SystemConstant.OSS_DOMAINS) {
url = url.replace(domain, "");
}
return StringUtils.substringBefore(url, SymbolConstant.QUESTION);
}
/**
* 获取完整的oss的url访问路径 外网
* @param url
* @return
*/
public static String getOuterOssDomainUrl(String url) {
if (StringUtils.isBlank(url)) {
return null;
}
for (String domain: SystemConstant.OSS_DOMAINS) {
url = url.replace(domain, "");
}
return SystemConstant.OSS_OUTER_PATH_HTTPS + url;
}
/**
* 获取完整的oss的url访问路径 内网
* @param url
* @return
*/
public static String getInternalOssDomainUrl(String url) {
if (StringUtils.isBlank(url)) {
return null;
}
for (String domain: SystemConstant.OSS_DOMAINS) {
url = url.replace(domain, "");
}
return SystemConstant.OSS_INTERNAL_PATH_HTTPS + url;
}
/**
* 判断是否是OSS路径
* @param url
* @return
*/
public static boolean isOssDomain(String url) {
if (StringUtils.isBlank(url)) {
return false;
}
for (String domain: SystemConstant.OSS_DOMAINS) {
if (url.contains(domain)) {
return true;
}
}
return false;
}
}