快速跳轉
- oss是什麼?
- 為什麼會出現這個問題?
- 如何解決問題?
-
- ossClient未設定setSupportCname
- 由于沒有在oss控制台添加域名導緻。
- 反代理通路oss出現該問題
- oss-browser出現該問題
- 問題解決
-
- SDK
- oss-browser
- 後記
oss是什麼?
對象存儲OSS 阿裡雲對象存儲OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的雲存儲服務,提供99.9999999999%(12個9)的資料持久性,99.995%的資料可用性。多種存儲類型供選擇,全面優化存儲成本。
為什麼會出現這個問題?
- 由于ossClient設定錯誤導緻。
- 由于沒有在oss控制台添加域名導緻。
- 由于沒有進行反代理配置而導緻。
- 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控制台添加域名解析。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL4FkaNhXT65EeRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxADNwMTMxgDM5AzNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
這裡寫你的伺服器域名:
并進行域名解析。如果你選擇了ecs反代理,那麼解析選擇A解析并指向ecs外網,公網通路指向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-browser出現該問題
設定為cname通路。
問題解決
SDK
oss-browser
後記
于是就是這個問題我和阿裡的售後工程師用工單說了一天,平均3小時回複一條,每次回答需要兩條,第一條回複正在檢查,第二條找原因,一來一回完整對話大約需要4到6小時=。=然後找錯了三次原因……
是以得多看看SDK啊,我的問題出現在ossclient上,就是因為沒好好看代碼導緻的。
附JavaSDK的連結。
2021年07月09日08:33:48