天天看点

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain.oss是什么?为什么会出现这个问题?如何解决问题?问题解决后记

快速跳转

  • oss是什么?
  • 为什么会出现这个问题?
  • 如何解决问题?
    • ossClient未设置setSupportCname
    • 由于没有在oss控制台添加域名导致。
    • 反代理访问oss出现该问题
    • oss-browser出现该问题
  • 问题解决
    • SDK
    • oss-browser
  • 后记

oss是什么?

对象存储OSS 阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。

为什么会出现这个问题?

  1. 由于ossClient设置错误导致。
  2. 由于没有在oss控制台添加域名导致。
  3. 由于没有进行反代理配置而导致。
  4. oss-browser也出现该报错。

如何解决问题?

ossClient未设置setSupportCname

这里以JavaSDK为例。

解决方法:setSupportCname设置为true.

private static final ClientBuilderConfiguration CONFIGURATION = new ClientBuilderConfiguration();
CONFIGURATION.setSupportCname(true);
OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESSKEYID, ACCESSKEYSECRET,CONFIGURATION);
           

由于没有在oss控制台添加域名导致。

注意,导致该问题的前提是使用:域名/路径/文件 是可以正常访问的,不会出现其他无法访问的问题,注意是否该文件选择的权限是否为公共。

解决方法:到oss控制台添加域名解析。

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain.oss是什么?为什么会出现这个问题?如何解决问题?问题解决后记

这里写你的服务器域名:

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain.oss是什么?为什么会出现这个问题?如何解决问题?问题解决后记

并进行域名解析。如果你选择了ecs反代理,那么解析选择A解析并指向ecs外网,公网访问指向oss的公网链接即可。

这里以反代理为例:

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain.oss是什么?为什么会出现这个问题?如何解决问题?问题解决后记

反代理访问oss出现该问题

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

要不是oss要流量费我会用ecs代理?为了省钱不择手段。

设置Nginx的反代理:

server_name在80端口只有一个服务器的情况下不需要设置;

proxy_set_header设置为Host $host或Host 你的域名;

proxy_pass设置为指定bucket的oss内网访问域名。

注意反代理oss的传输速度会受限于ecs的带宽,比如我的1m小水管

所以为了加快访问需要配置cdn加速,回头我会写一篇千牛云白嫖加速的教程回头再说 。

参考使用:官方教程 -> 官方教你省钱用反代理

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain.oss是什么?为什么会出现这个问题?如何解决问题?问题解决后记

箭头位置是我用的域名,根据你的服务器的实际情况自行选择.

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain.oss是什么?为什么会出现这个问题?如何解决问题?问题解决后记

oss-browser出现该问题

设置为cname访问。

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain.oss是什么?为什么会出现这个问题?如何解决问题?问题解决后记

问题解决

SDK

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain.oss是什么?为什么会出现这个问题?如何解决问题?问题解决后记

oss-browser

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain.oss是什么?为什么会出现这个问题?如何解决问题?问题解决后记

后记

于是就是这个问题我和阿里的售后工程师用工单说了一天,平均3小时回复一条,每次回答需要两条,第一条回复正在检查,第二条找原因,一来一回完整对话大约需要4到6小时=。=然后找错了三次原因……

所以得多看看SDK啊,我的问题出现在ossclient上,就是因为没好好看代码导致的。

附JavaSDK的链接。

2021年07月09日08:33:48