阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain.

快速跳转

  • 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._第1张图片

这里写你的服务器域名: 阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain._第2张图片
并进行域名解析。如果你选择了ecs反代理,那么解析选择A解析并指向ecs外网,公网访问指向oss的公网链接即可。
这里以反代理为例:
阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain._第3张图片

反代理访问oss出现该问题

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

要不是oss要流量费我会用ecs代理?为了省钱不择手段。
设置Nginx的反代理:
server_name在80端口只有一个服务器的情况下不需要设置;
proxy_set_header设置为Host $host或Host 你的域名;
proxy_pass设置为指定bucket的oss内网访问域名。

注意反代理oss的传输速度会受限于ecs的带宽,比如我的1m小水管
所以为了加快访问需要配置cdn加速,回头我会写一篇千牛云白嫖加速的教程回头再说

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

箭头位置是我用的域名,根据你的服务器的实际情况自行选择.
在这里插入图片描述

oss-browser出现该问题

设置为cname访问。

问题解决

SDK

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain._第4张图片

oss-browser

阿里云oss出现The bucket you are attempting to access must be addressed using OSS third level domain._第5张图片

后记

于是就是这个问题我和阿里的售后工程师用工单说了一天,平均3小时回复一条,每次回答需要两条,第一条回复正在检查,第二条找原因,一来一回完整对话大约需要4到6小时=。=然后找错了三次原因……
所以得多看看SDK啊,我的问题出现在ossclient上,就是因为没好好看代码导致的。
附JavaSDK的链接。
2021年07月09日08:33:48

你可能感兴趣的:(初学笔记,java,阿里云,sdk,后端,linux)