OSS Bucket網域名稱訪問HTML、圖片等檔案時,瀏覽器會強制下載而非線上預覽,影響使用者體驗。通過將自訂網域名綁定至Bucket,可以使用自訂網域名替代OSS Bucket網域名稱直接存取檔案,實現線上預覽,並獲得更靈活的存取控制能力。
綁定自訂網域名前,請確保已擁有一個登入的網域名稱或註冊一個新網域名稱。若Bucket位於中國內地,綁定的網域名稱必須完成ICP備案。
工作原理
自訂網域名綁定至OSS Bucket的實現機制基於DNS的CNAME(Canonical Name)記錄。通過將網域名稱指向OSS為Bucket提供的訪問地址,當使用者訪問自訂網域名時,DNS系統將其解析到對應的OSS Bucket網域名稱,從而實現對OSS資源的直接存取。
請根據業務需求選擇相應的自訂網域名綁定方式:
常規訪問:綁定網域名稱至外網訪問網域名稱
跨國或遠距離加速:綁定網域名稱至傳輸加速網域名稱
綁定網域名稱至外網訪問網域名稱
如需託管網站的圖片、指令碼等靜態檔案,可將網域名稱綁定至外網訪問網域名稱,實現基礎的檔案訪問和線上預覽功能。
步驟一:綁定網域名稱至Bucket
前往Bucket列表,單擊目標Bucket名稱,然後在Bucket左側功能表列單擊。
單擊綁定網域名稱,輸入需要綁定的網域名稱,如
oss-example.cn,系統將自動檢測是否滿足綁定條件。
檢測通過後,將網域名稱綁定至Bucket。
直接綁定
網域名稱屬於當前賬戶時,可直接進行綁定。單擊確認綁定,將網域名稱綁定至Bucket。

驗證網域名稱所有權並綁定
網域名稱屬於其他阿里雲賬戶或其他網域名稱服務 (DNS)商時,需要先驗證網域名稱所有權才能進行綁定。以下操作以其他阿里雲賬戶為例說明網域名稱所有權驗證並綁定的完整流程。
使用網域名稱歸屬的阿里雲帳號登入Alibaba Cloud DNS控制台,單擊目標網域名稱操作列的解析設定。
單擊添加記錄,按照下方配置列表填寫記錄資訊,其餘配置項可保持預設設定。
記錄類型:選擇TXT。
主機記錄:填寫OSS控制台顯示的主機記錄,如
_dnsauth,如果綁定的是子網域名稱,還需要加上子網域名稱首碼,如綁定image.oss-example.cn,則主機記錄填寫_dnsauth.image。記錄值:填寫OSS控制台顯示的記錄值,如
21a0****************************。
單擊確定,然後在彈出的解析變更確認視窗,再次單擊確定。
返回OSS控制台,單擊驗證網域名稱所有權並綁定,將網域名稱綁定至Bucket。網域名稱解析記錄添加後需要一段時間才會生效,如果頁面報錯,請等待幾分鐘後重試。
說明TXT記錄用於驗證對網域名稱的所有權,驗證成功後即可刪除,不影響後續使用。
步驟二:配置CNAME指向外網訪問網域名稱
將網域名稱綁定至Bucket後,自訂網域名尚未生效,需要配置CNAME解析記錄將自訂網域名指向外網訪問網域名稱,使自訂網域名生效。
在配置自訂網域名 CNAME 指向 OSS 外網訪問網域名稱前,請務必在控制台將該自訂網域名與 OSS Bucket 進行綁定,否則會導致以自訂網域名訪問 OSS 時無法正確識別出 Bucket ,進而返回非預期內容的情況。同時在後續解除綁定關係後,也請務必及時刪除自訂網域名 CNAME 到 OSS 的指向。
自動設定
網域名稱屬於當前賬戶時,綁定網域名稱後可以直接在控制台開啟自動添加 CNAME 記錄,系統會在阿里雲網域名稱解析處自動添加當前網域名稱的CNAME記錄。
如果提示存在相同的主機記錄導致無法自動添加CNAME記錄,說明之前已為該網域名稱建立CNAME解析記錄。請登入Alibaba Cloud DNS控制台確認該CNAME記錄是否還在使用,如果不再使用,可以刪除後重新添加正確的CNAME解析記錄。

手動設定
當前網域名稱已存在CNAME解析記錄,或網域名稱屬於其他阿里雲賬戶或其他網域名稱服務 (DNS)商時,需要在相應的網域名稱解析服務商配置CNAME解析。以下操作以阿里雲Alibaba Cloud DNS為例說明CNAME解析記錄的配置方法。
前往Bucket列表,單擊目標Bucket名稱,然後在Bucket左側功能表列單擊概覽,複製外網訪問右側的Bucket網域名稱。
使用網域名稱歸屬的阿里雲帳號登入Alibaba Cloud DNS控制台,單擊目標網域名稱操作列的解析設定。
單擊添加記錄,按照下方配置列表填寫記錄資訊,其餘配置項可保持預設設定。
說明如果已存在CNAME解析記錄,請單擊解析記錄操作列的修改,將記錄值修改為OSS Bucket外網訪問網域名稱。
記錄類型:選擇CNAME。
主機記錄:如果綁定的是主網域名稱,填寫
@,如果綁定的是子網域名稱,填寫子網域名稱首碼,如綁定image.oss-example.cn,則主機記錄填寫image。記錄值:填寫外網訪問網域名稱,如
pub******.oss-cn-hangzhou.aliyuncs.com。
單擊確定,然後在彈出的解析變更確認視窗,再次單擊確定,完成網域名稱解析配置。
DNS解析的生效時間取決於記錄的TTL(存留時間)設定,完全生效通常需要幾分鐘到幾小時。配置後立即訪問無效屬於正常現象,請耐心等待或嘗試清除本地DNS緩衝。
步驟三:驗證自訂網域名訪問
完成網域名稱綁定和解析配置後,可根據Bucket的讀寫權限設定選擇相應的驗證方式。
公用讀取和公用讀寫Bucket
在瀏覽器中通過URL:http://your_domain_name/object_path訪問OSS中的對象檔案,其中your_domain_name為綁定的自訂網域名,object_path為檔案在Bucket內的訪問路徑。例如,檔案dest.jpg存放在Bucket的exampledir目錄下,則object_path為exampledir/dest.jpg。訪問效果如下圖所示:

私人Bucket
訪問讀寫權限為私人的Bucket時,需要在訪問檔案的URL中包含簽名資訊。以下操作說明如何通過控制台擷取檔案的簽名URL,關於簽名的詳細資料和產生方式請參見簽名版本4(推薦)。
前往Bucket列表,單擊目標Bucket名稱。
單擊需要訪問的目標檔案操作列的詳情。
選擇網域名稱為自訂網域名並在下拉框中選擇綁定的自訂網域名,然後單擊複製檔案URL。
在瀏覽器中訪問URL,訪問效果如下圖所示。

綁定網域名稱至傳輸加速網域名稱
當需要使用自訂網域名實現Bucket遠距離資料轉送加速,例如從中國內地向非中國內地Bucket加速上傳或下載檔案時,除了將網域名稱綁定至Bucket,還需要開啟傳輸加速功能,並修改CNAME記錄指向傳輸加速網域名稱。
步驟一:綁定網域名稱至Bucket
前往Bucket列表,單擊目標Bucket名稱,然後在Bucket左側功能表列單擊。
單擊綁定網域名稱,輸入需要綁定的網域名稱,如
oss-example.cn,系統將自動檢測是否滿足綁定條件。
檢測通過後,將網域名稱綁定至Bucket。
直接綁定
網域名稱屬於當前賬戶時,可直接進行綁定。單擊確認綁定,將網域名稱綁定至Bucket。

驗證網域名稱所有權並綁定
網域名稱屬於其他阿里雲賬戶或其他網域名稱服務 (DNS)商時,需要先驗證網域名稱所有權才能進行綁定。以下操作以其他阿里雲賬戶為例說明網域名稱所有權驗證並綁定的完整流程。
使用網域名稱歸屬的阿里雲帳號登入Alibaba Cloud DNS控制台,單擊目標網域名稱操作列的解析設定。
單擊添加記錄,按照下方配置列表填寫記錄資訊,其餘配置項可保持預設設定。
記錄類型:選擇TXT。
主機記錄:填寫OSS控制台顯示的主機記錄,如
_dnsauth,如果綁定的是子網域名稱,還需要加上子網域名稱首碼,如綁定image.oss-example.cn,則主機記錄填寫_dnsauth.image。記錄值:填寫OSS控制台顯示的記錄值,如
21a0****************************。
單擊確定,然後在彈出的解析變更確認視窗,再次單擊確定。
返回OSS控制台,單擊驗證網域名稱所有權並綁定,將網域名稱綁定至Bucket。網域名稱解析記錄添加後需要一段時間才會生效,如果頁面報錯,請等待幾分鐘後重試。
說明TXT記錄用於驗證對網域名稱的所有權,驗證成功後即可刪除,不影響後續使用。
步驟二:開啟傳輸加速功能
前往Bucket列表,單擊目標Bucket名稱,然後在Bucket左側功能表列單擊。
啟用開啟傳輸加速,在彈出的對話方塊中仔細閱讀開通提示,然後單擊確定。
複製傳輸加速訪問網域名稱。
步驟三:配置CNAME指向傳輸加速網域名稱
以下操作以阿里雲Alibaba Cloud DNS為例說明CNAME解析記錄的配置方法。
在配置自訂網域名 CNAME 指向 OSS 傳輸加速網域名稱前,請務必在控制台將該自訂網域名與 OSS Bucket 進行綁定,否則會導致以自訂網域名訪問 OSS 時無法正確識別出 Bucket ,進而返回非預期內容的情況。同時在後續解除綁定關係後,也請務必及時刪除自訂網域名 CNAME 到 OSS 的指向。
使用網域名稱歸屬的阿里雲帳號登入Alibaba Cloud DNS控制台,單擊目標網域名稱操作列的解析設定。
單擊添加記錄,按照下方配置列表填寫記錄資訊,其餘配置項可保持預設設定。
說明如果已存在CNAME解析記錄,請單擊解析記錄操作列的修改,將記錄值修改為傳輸加速訪問網域名稱。
記錄類型:選擇CNAME。
主機記錄:如果綁定的是主網域名稱,填寫
@,如果綁定的是子網域名稱,填寫子網域名稱首碼,如綁定image.oss-example.cn,則主機記錄填寫image。記錄值:填寫傳輸加速訪問網域名稱。
單擊確定,然後在彈出的解析變更確認視窗,再次單擊確定,完成網域名稱解析配置。
DNS解析的生效時間取決於記錄的TTL(存留時間)設定,完全生效通常需要幾分鐘到幾小時。配置後立即訪問無效屬於正常現象,請耐心等待或嘗試清除本地DNS緩衝。
步驟四:驗證自訂網域名訪問
完成網域名稱綁定和解析配置後,可根據Bucket的讀寫權限設定選擇相應的驗證方式。
公用讀取和公用讀寫Bucket
在瀏覽器中通過URL:http://your_domain_name/object_path訪問OSS中的對象檔案,其中your_domain_name為綁定的自訂網域名,object_path為檔案在Bucket內的訪問路徑。例如,檔案dest.jpg存放在Bucket的exampledir目錄下,則object_path為exampledir/dest.jpg。訪問效果如下圖所示:

私人Bucket
訪問讀寫權限為私人的Bucket時,需要在訪問檔案的URL中包含簽名資訊。以下操作說明如何通過控制台擷取檔案的簽名URL,關於簽名的詳細資料和產生方式請參見簽名版本4(推薦)。
前往Bucket列表,單擊目標Bucket名稱。
單擊需要訪問的目標檔案操作列的詳情。
選擇網域名稱為自訂網域名並在下拉框中選擇綁定的自訂網域名,然後單擊複製檔案URL。
在瀏覽器中訪問URL,訪問效果如下圖所示。

應用於生產環境
最佳實務
安全傳輸:啟用HTTPS
為自訂網域名配置SSL認證,強制使用HTTPS訪問。HTTPS協議通過TLS/SSL加密傳輸資料,防止資料在傳輸過程中被竊取或篡改,避免瀏覽器顯示不安全警告,提升使用者信任度和品牌形象。
跨域訪問:配置CORS規則
當前端應用(如部署在
https://web.example.cn)需要訪問OSS資源(如https://oss.example.cn)時,必須配置CORS跨域規則,允許來自應用網域名稱的跨域請求。CORS規則通過HTTP頭控制跨域存取權限,確保前端應用正常訪問OSS資源,同時防止未授權的跨域請求。平滑上線:零停機網域名稱切換
當需要將Bucket網域名稱切換到綁定的自訂網域名時,採用以下分階段切換策略可避免服務中斷,確保商務持續性。
準備階段:將自訂網域名綁定至Bucket並完成CNAME解析規則設定。在測試環境中,使用
hosts檔案或測試網域名稱完整驗證新配置的自訂網域名功能和效能,確保所有功能正常運行。灰階發布階段(建議在業務低峰期):採用灰階發布的方式將部分業務流量切換至自訂網域名,通過逐步放量降低切換風險。
驗證階段:密切監控業務訪問日誌和錯誤率,分析回應時間、成功率等關鍵計量,確保灰階發布服務正常且業務運行平穩。
全量發布階段:經過充分驗證後,將全量業務流量切換至自訂網域名,完成網域名稱遷移。
復原預案:如遇問題,立即復原至Bucket網域名稱,並詳細分析問題根因後重新部署。
效能與安全:通過子網域名稱隔離用途
根據不同業務用途分配不同子網域名稱,如網頁靜態資源使用
static.example.com,圖片資源使用images.example.com。通過網域名稱隔離實現瀏覽器並發串連數最佳化(繞過單網域名稱並發限制)、獨立緩衝策略配置、精微調權限控制和安全性原則部署,提升訪問速度並增強整體安全性。功能擴充:託管靜態網站
如果目標是利用OSS託管完整的靜態網站(包含HTML、CSS、JS等檔案),在綁定自訂網域名後,還需進一步配置靜態網站託管功能,實現預設首頁、404錯誤頁面等網站基礎功能。
效能最佳化:配置CDN加速
對於需要向全球使用者分發靜態資源的情境,建議在自訂網域名的基礎上,進一步配置CDN加速服務,通過全球分布的邊緣節點緩衝內容,獲得更低的訪問延遲、更高的並發能力和更優的使用者體驗。
風險防範
流量盜用防護:配置Referer防盜鏈
為防止圖片、視頻等資源被其他網站盜用,產生不必要的流量費用和頻寬消耗,請使用防盜鏈策略避免非法流量盜用。通過白名單機制限制訪問來源,有效控製成本並保護資源不被濫用。
行為審計與排障:啟用訪問日誌
啟用OSS即時日誌查詢,記錄所有訪問請求的詳細資料,包括訪問時間、來源IP、請求類型、響應狀態等,便於安全審計、效能分析、異常排查和業務營運決策支援。
配額與限制
綁定數量:每個Bucket最多可以綁定100個自訂網域名。
網域名稱唯一性:一個自訂網域名在同一時間只能綁定到一個Bucket。如需改綁,必須先從原Bucket解除綁定,確保網域名稱指向的唯一性和訪問路徑的明確性。
說明對於部分使用舊版圖片處理功能的使用者,已用於圖片處理的網域名稱不能再綁定到Bucket。新版圖片處理功能無此限制。
網域名稱類型:不支援綁定中文網域名稱和泛網域名稱(如
*.example.cn),確保DNS解析的穩定性和相容性。說明通過CDN加速OSS時,允許綁定泛網域名稱,但該網域名稱不會在OSS管理主控台顯示。
常見問題
通過API綁定網域名稱時返回NeedVerifyDomainOwnership錯誤怎麼辦?
此錯誤明確指出未驗證網域名稱所有權。可通過以下方式驗證網域名稱所有權:
調用CreateCnameToken介面建立網域名稱所有權驗證所需的
CnameToken。說明CnameToken預設在建立完成後72小時內到期。如果在到期時間內重複建立,則返回已存在的CnameToken。參照前述文檔說明,在網域名稱服務 (DNS)供應商處配置TXT記錄完成網域名稱所有權驗證。
調用PutCname介面綁定自訂網域名。
通過加速網域名稱訪問時返回 502 或 504 錯誤怎麼辦?
此問題通常是OSS傳輸加速的自動路徑切換機制導致的正常現象。為應對遠距離傳輸中的網路波動和鏈路品質變化,該服務會動態選擇最優傳輸路徑,在路徑切換瞬間可能導致少量請求中斷並返回502/504錯誤。這種情況無法完全避免,建議在用戶端代碼中實現指數退避的重試邏輯來提升訪問成功率。
訪問時出現網路錯誤(如解析失敗、連線逾時)如何排查?
如果請求OSS時收到了響應,只需擷取Request ID,開啟OSS自助診斷工具進行問題診斷檢測即可。
如果請求沒有到達OSS伺服器就發生了中斷,即Request ID為空白,可按以下步驟排查:
Connection refused:此錯誤通常表示用戶端與OSS同地區但連接埠不通,或跨地區使用了內網Endpoint。請檢查並使用正確的外網Endpoint訪問,同時使用
ping和telnet命令檢查用戶端防火牆設定或網路連通性限制。ConnectionTimeOut:通常由網路環境不佳或逾時設定過短導致。建議適當增大SDK中的連線逾時和讀取逾時時間並開啟失敗重傳機制。對於大檔案傳輸,應使用分區上傳和斷點續傳上傳提升傳輸穩定性。若為網路鏈路問題,可考慮使用CDN或OSS傳輸加速服務。
Socket timeout or Socket closed:表示與OSS的連線逾時或被異常關閉。請在SDK配置中增大Socket逾時時間(例如Java SDK的
ClientConfiguration.setSocketTimeout方法)。Connection reset:串連被重設的原因多樣(如Endpoint配置錯誤、Bucket因安全原因被限制訪問等)。請依次排查:
OSS上傳或下載檔案時速度很慢,怎麼辦?
OSS的傳輸速度主要受用戶端本網頻寬、網路鏈路品質和傳輸策略配置影響。
通用排查:首先,確認當前頻寬使用未達到Bucket的頻寬節流設定上限。其次,使用MTR工具進行網路鏈路分析檢查是否存在丟包、高延遲或路由異常。對於跨國或遠距離傳輸情境,強烈建議開啟並使用傳輸加速服務最佳化網路路徑。
工具最佳化:推薦使用命令列工具ossutil 2.0進行大檔案或大量檔案的傳輸。使用其
probe命令可檢測當前網路狀態。SDK最佳化:對於大檔案,務必使用分區上傳和斷點續傳上傳功能,併合理配置分區大小
part_size和並發線程數num_threads。在網路情況良好時,可適當增大分區大小以減少請求次數。此外,在初始化SDK用戶端時關閉CRC64校正(如Python中設定enable_crc=False),並在要求標頭中增加Content-MD5進行資料完整性校正,可在保證資料安全的前提下提升傳輸效能。
如何控制通過自訂網域名訪問檔案時的預覽或下載行為?
檔案的預覽或下載行為由HTTP回應標頭Content-Disposition決定。核心機制在於:使用OSS Bucket網域名稱訪問時,OSS會為安全起見強制添加Content-Disposition: attachment下載頭;而通過自訂網域名訪問時,OSS則不會添加此頭,從而使行為變得可控。
實現預覽:確保檔案中繼資料中沒有設定
Content-Disposition: attachment並確保檔案的Content-Type(MIME類型)正確匹配檔案格式。對於瀏覽器原生不支援預覽的檔案格式,可通過以下方式擴充預覽能力:對於.doc、.ppt、.pdf等辦公檔案,整合WebOffice線上預覽服務實現文檔預覽。
對於.mov等特殊格式視頻檔案,使用視頻轉碼服務轉換為Web相容格式後實現預覽。
安裝對應檔案類型的瀏覽器預覽外掛程式。
強制下載:為檔案的中繼資料手動設定
Content-Disposition為attachment,瀏覽器將忽略預覽嘗試並直接下載檔案。說明<video>或<audio>標籤會優先播放媒體,可能會忽略attachment的下載建議。
綁定網域名稱時校正失敗,提示網域名稱綁定在其他Bucket上怎麼辦?
遇到網域名稱已被其他Bucket綁定的情況,可採用以下兩種解決方案:
為當前業務使用一個新的子網域名稱。如子網域名稱
oss-example.cn已被其他Bucket綁定,可使用static.oss-example.cn等新的子網域名稱進行綁定,通過網域名稱層級實現業務隔離。將網域名稱從原有Bucket解除綁定,再綁定到目標Bucket。解除綁定操作步驟如下:
為何“網域名稱B CNAME到網域名稱A,網域名稱A再綁定OSS”的方式會訪問失敗?
因為OSS會嚴格校正HTTP要求標頭中的Host欄位,要求其必須與Bucket中實際綁定的網域名稱(網域名稱A)完全一致。當訪問網域名稱B時,Host頭為"網域名稱B",與綁定網域名稱不匹配導致校正失敗。因此,必須將實際公網訪問的網域名稱(網域名稱B)直接綁定到Bucket,而不能通過網域名稱間的CNAME轉寄實現。
配置完成後訪問自訂網域名無效或仍訪問到舊地址?
這很可能是由於本地及電訊廠商DNS緩衝導致的解析延遲。為提升解析效率,DNS系統各層級節點會依據TTL(Time-To-Live)值將網域名稱解析結果緩衝一段時間。當CNAME記錄變更後,若緩衝尚未到期,訪問請求仍可能被指向舊的地址。請嘗試清除本地DNS緩衝,或等待緩衝自動重新整理後重試。不同作業系統清除本地DNS緩衝的方式如下:
Windows
ipconfig /flushdnsmacOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderLinux
sudo systemd-resolve --flush-caches如何使用不帶簽名的長期有效URL訪問OSS檔案?
實現長期有效URL訪問有以下兩種方式:
設定檔案為公用讀取:檔案將可被任何人無限制訪問。為防止資源被惡意盜用產生額外費用,務必在OSS中配置防盜鏈策略限制訪問來源。
通過CDN加速訪問OSS:保持OSS檔案的許可權為私人,通過開啟CDN的私人Bucket回源功能提供公用讀取訪問。CDN可提供更好的訪問效能和緩衝能力,為防止資源被盜用,需要在CDN層面配置防盜鏈規則。
綁定自訂網域名後,之前的檔案URL是否可以繼續使用?
可以繼續使用。綁定自訂網域名不會影響原有的OSS Bucket網域名稱訪問方式,兩者可以並存。擷取之前的檔案URL方法,請參見使用預簽名URL下載檔案。
使用自訂網域名就是公網訪問嗎?
是的,自訂網域名綁定功能主要用於公網訪問情境,通過解析到Bucket的外網訪問網域名稱實現,以便檔案能在瀏覽器中直接預覽而非強制下載。