天天看點

阿裡雲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