一、该问题的重现步骤是什么?
1. 使用阿里云的oss存储;
2. 没有使用阿里云自带的域名,绑定了我们自己的域名;
3.上传正常文件正常,下载同一个文件时报错,检查后发现域名中加了空间名,例如http://空间名.abc.xxx.com,正确的域名应该是http://abc.xxx.com。
二、你期待的结果是什么?实际看到的又是什么?
如何解决次问题。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladex4。
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
可以先自己改造成下面的逻辑,然后tool工程执行mvn clean install,这样自定义域名就不会增加二级域名了,但我们还是推荐自建域名也是类似阿里云的格式,也增加一个阿里云对应的空间名到自定义域名,然后做映射。
/**
* 获取域名
*
* @param bucketName 存储桶名称
* @return String
*/
public String getOssHost(String bucketName) {
if (StringUtil.isNotBlank(ossProperties.getTransformEndpoint())) {
return ossProperties.getTransformEndpoint();
}
String prefix = getEndpoint().contains("https://") ? "https://" : "http://";
return prefix + getBucketName(bucketName) + StringPool.DOT + getEndpoint().replaceFirst(prefix, StringPool.EMPTY);
}
“但我们还是推荐自建域名也是类似阿里云的格式,也增加一个阿里云对应的空间名到自定义域名”
域名格式改成这样吗?https://空间名.xxx.com
https://空间名.oss.yourdomain.com
域名此https://空间名.oss.yourdomain.com格式不行,会变成https://空间名.空间名.oss.yourdomain.com
你去映射https://空间名.oss.yourdomain.com,然后在oss模块配置外网连接为https://oss.yourdomain.com,空间名会自动加上
“你去映射https://空间名.oss.yourdomain.com”
没看懂,如何映射?阿里云oss自定义域名是做一个CNAME解析,oss.yourdomain.com解析至阿里云自带的域名上。
原本你怎么映射现在就怎么映射,只不过映射的时候比你预想的多一层级罢了。
阿里云原版能有空间名,你自己域名也能设置。你映射的时候就映射这个https://空间名.oss.yourdomain.com。
然后你在后端配置oss的时候,有一个外网域名的配置项,你配置https://oss.yourdomain.com,这样程序后台会自动加上空间名,上传后返回的就是https://空间名.oss.yourdomain.com,那么跟你最开始映射的地址就是一样的,就能访问了。
如果你还不明白,就去改源码,已经给你地址了。
明白了,我试一试
扫一扫访问 Blade技术社区 移动端