OSS為每個儲存空間(Bucket)分配一系列訪問網域名稱,支援根據不同業務需求和網路環境靈活訪問OSS資源。本文介紹各網域名稱類型的格式、適用情境和配置方式,協助選擇合適的訪問方式。
核心概念
標準的OSS訪問地址由多個層級組合構成。準確理解以下四個核心概念,對於正確訪問OSS至關重要:
概念 | 說明 | 格式 | 用途 |
Region ID | 通用地區標識 |
| 用於SDK、ossutil進行V4簽名等情境 |
專用 Region ID | OSS 專用地區標識 |
| 用於構成 Endpoint、API入參、返回參數等情境 |
Endpoint | 服務訪問地址 |
| 在SDK、ossutil中配置,用於建立與OSS服務的網路連接等情境 |
Bucket 網域名稱 | 具體 Bucket的訪問地址 |
| 用於瀏覽器直接存取、產生簽名URL或託管靜態網站、自訂網域名 CNAME 解析等情境 |
這四個概念存在層級關係:Region ID 表示一個地理位置,OSS為其分配對應的專用 Region ID,專用 Region ID與網域名稱尾碼組合構成Endpoint(服務訪問地址)。訪問具體Bucket時,使用Bucket名稱與Endpoint組合形成的Bucket 網域名稱(資源訪問地址)。
各地區的Region ID請參見地區和Endpoint。
網域名稱類型
OSS根據網路環境和效能需求提供不同類型的訪問網域名稱。
網域名稱類型 | 適用情境 | 網域名稱格式 | 費用特點 | 是否需要開通 |
Web應用、移動用戶端等公網訪問 |
| 按外網流量計費 | 預設可用 | |
同地區阿里雲內網訪問(如ECS) |
| 免流量費 | 預設可用 | |
跨地區、跨國際高速上傳/下載 |
| 按傳輸加速計費 | 需開啟傳輸加速功能 | |
自訂網域名綁定(靜態資源託管等) |
| 按外網流量計費 | ||
IPv6網路環境訪問OSS |
| 同外網流量計費 | 部分地區支援 |
外網訪問網域名稱
專為互連網訪問設計,適用於Web應用、移動用戶端、跨地區訪問等情境。SDK預設使用外網訪問網域名稱,只需填寫Region ID即可完成配置,無需額外指定Endpoint。
內網訪問網域名稱
專為阿里雲內網環境設計,適用於同地區的ECS執行個體訪問OSS等情境。通過內網訪問可避免產生外網流量費用,同時獲得更穩定的網路連接和更低的訪問延遲。使用時建議:
DNS 配置最佳化
使用內網Endpoint時,強烈建議配置阿里雲的雲上私網DNS地址(
100.100.2.136和100.100.2.138),確保擷取正確的VIP地址,避免因DNS解析問題導致OSS訪問異常。VIP 網段路由配置完整性
OSS為每個Region內網VIP網段劃分了固定位址區段,系統會在指定VIP網段內動態切換IP地址。本地裝置和資料中心通過內網訪問OSS時,路由配置必須涵蓋完整的VIP網段,否則可能因網路路由不完整導致串連中斷。各地區的內網VIP網段資訊請參見地區和Endpoint。
重要請確保路由配置涵蓋完整的VIP網段,避免因配置不完整導致網路連通性問題。若因VIP網段配置缺失影響OSS服務可用性,相關損失需由配置方承擔。
安全性群組規則配置
使用ECS執行個體通過內網訪問OSS時,安全性群組規則不能禁止訪問任何一個VIP網段,確保網路連通性。
傳輸加速網域名稱
啟用傳輸加速功能後可使用的專用網域名稱,通過Global Acceleration節點最佳化資料轉送路徑,適用於跨地區、跨國際的高速上傳/下載情境,顯著改善遠距離訪問的網路品質。
CNAME 網域名稱
OSS 為 Bucket 產生的專用解析網域名稱,用於自訂網域名綁定情境。當需要通過自訂網域名訪問OSS時,應將自訂網域名CNAME解析到該網域名稱,而非外網訪問 Endpoint。
OSS 會為 Bucket 分配地區內的 CNAME 網域名稱,不同 Bucket 可能分配到不同的網域名稱。相比所有 Bucket 共用同一個外網Endpoint,CNAME 網域名稱分散了訪問鏈路,具有更高的可用性。使用時注意:
僅用於 DNS 解析:CNAME 網域名稱僅用於自訂網域名的 DNS 解析配置,不支援直接存取。
通過自訂網域名訪問:完成自訂網域名綁定和CNAME解析配置後,通過自訂網域名訪問 OSS 資源。
雙棧網域名稱
支援IPv4和IPv6雙棧訪問的Endpoint,允許IPv6網路環境下的用戶端直連OSS資源。使用雙棧網域名稱時,用戶端無需特殊配置,在純IPv6或雙棧網路環境中,DNS會自動解析並優先使用IPv6地址建立串連。各地區的雙棧網域名稱資訊請參見地區和Endpoint。
使用樣本
瀏覽器
通過OSS提供的訪問網域名稱訪問HTML、圖片等檔案時,瀏覽器會強制下載而非線上預覽。如需實現檔案預覽功能,請通過自訂網域名訪問OSS。
以下樣本示範通過控制台擷取私人Bucket的檔案簽名URL,更多擷取簽名URL的方式請參見使用預簽名URL下載或預覽檔案。
前往Bucket列表,單擊目標Bucket。
單擊目標檔案的檔案名稱或操作列的詳情,域名選擇外網網域名稱,然後單擊復制文件 URL。
在瀏覽器中訪問URL。
ossutil
以下樣本示範使用命令列工具ossutil下載檔案。ossutil預設使用外網訪問Endpoint,可通過-e參數指定其他類型的Endpoint:
ossutil cp oss://<bucket-name>/<object-name> <local-path> -e <endpoint>不同網域名稱類型對應的參數配置:
網域名稱類型 | 參數配置 |
外網訪問網域名稱(預設) | 可省略 |
內網訪問網域名稱 |
|
傳輸加速網域名稱 |
|
自訂網域名 |
|
SDK
以下展示主流語言V2版本SDK的初始化樣本。SDK預設使用外網訪問網域名稱,只需填寫Region即可完成配置。
Java
OSSClient client = OSSClient.newBuilder()
.credentialsProvider(provider)
.region("<region-id>")
.build();完整的初始化代碼請參見OSS Java SDK V2(預覽版)。
Python
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = '<region-id>'
client = oss.Client(cfg)完整的初始化代碼請參見OSS Python SDK V2。
Go
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>")
client := oss.NewClient(cfg)完整的初始化代碼請參見OSS Go SDK V2。
PHP
$cfg = Configuration::loadDefault();
$cfg->setCredentialsProvider($provider);
$cfg->setRegion('<region-id>');
$client = new Oss\Client($cfg);完整的初始化代碼請參見OSS PHP SDK V2。
C#
var cfg = OSS.Configuration.LoadDefault();
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
cfg.Region = "<region-id>";
using var client = new OSS.Client(cfg);完整的初始化代碼請參見OSS SDK for C# 2.0 (preview)。
Node.js
const client = new OSS({
region: 'oss-<region-id>',
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
});完整的初始化代碼請參見OSS Node.js SDK。
切換網域名稱類型
V2版本SDK支援通過配置項快速切換網域名稱類型,無需手動拼接Endpoint字串:
語言 | 外網訪問網域名稱 | 內網訪問網域名稱 | 傳輸加速網域名稱 | 雙棧網域名稱 |
Java | 僅設定 |
|
|
|
Python | 僅設定 |
|
|
|
Go | 僅設定 |
|
|
|
PHP | 僅設定 |
|
|
|
C# | 僅設定 |
|
|
|
Node.js SDK 不支援上述配置項,需通過
endpoint參數直接指定目標Endpoint字串。可以在所有SDK中通過
endpoint參數直接指定任意Endpoint字串,效果相同。如需使用V1版本SDK,請參見對應語言的V1文檔:OSS Java SDK V1 | OSS Python SDK V1 | OSS Go SDK V1 | OSS PHP SDK V1 | OSS SDK for C#。
更多語言的SDK整合樣本請參見SDK參考。
協議與連接埠
所有地區的Endpoint和Bucket網域名稱均支援HTTP和HTTPS兩種協議訪問。為確保資料轉送安全性,強烈建議在生產環境中使用HTTPS協議。
OSS支援以下連接埠:
連接埠 | 協議 | 說明 |
80 | HTTP | HTTP協議預設連接埠 |
443 | HTTPS | HTTPS協議預設連接埠 |
1935 | RTMP | 僅用於RTMP推流情境 |