OSS為每個儲存空間(Bucket)分配一系列預設訪問網域名稱,支援根據不同業務需求和網路環境(公網、內網、傳輸加速網路)靈活訪問OSS資源。
核心概念
標準的OSS訪問地址由多個層級組合構成。準確理解以下四個核心概念,對於正確訪問OSS至關重要:
概念 | 說明 | 樣本 | 用途 |
Region ID | 通用地區標識 |
| 用於SDK、ossutil進行V4簽名等情境 |
專用Region ID | OSS專用地區標識 |
| 用於構成Endpoint、API入參、返回參數等情境 |
Endpoint | 服務訪問地址 |
| 在SDK、ossutil中配置,用於建立與OSS服務的網路連接等情境 |
Bucket網域名稱 | 具體Bucket的訪問地址 |
| 用於瀏覽器直接存取、產生簽名URL或託管靜態網站等情境。 |
這四個概念存在層級關係:Region ID 標識一個地理位置,OSS為其分配對應的專用Region ID,專用Region ID與網域名稱尾碼組合構成Endpoint(服務訪問地址)。訪問具體Bucket時,使用Bucket名稱與Endpoint組合形成的Bucket網域名稱(資源訪問地址)。
網域名稱類型
OSS根據網路環境和效能需求提供不同類型的訪問網域名稱。
外網訪問網域名稱
專為互連網訪問設計,適用於Web應用、移動用戶端、跨地區訪問等情境。
網域名稱格式
Endpoint:
oss-[RegionID].aliyuncs.comBucket網域名稱:
[BucketName].oss-[RegionID].aliyuncs.com
訪問樣本
檔案URL
以下樣本示範通過控制台擷取私人Bucket的檔案簽名URL,更多擷取簽名URL的方式請參見使用預簽名URL下載或預覽檔案。
前往Bucket列表,單擊目標Bucket。
單擊目標訪問檔案的檔案名稱或操作列的詳情。
網域名稱選擇外網網域名稱,單擊複製檔案URL。
在瀏覽器中訪問URL。
通過OSS Bucket網域名稱訪問HTML、圖片等檔案時,瀏覽器會強制下載而非線上預覽。如需實現檔案預覽功能,請通過自訂網域名訪問OSS。
ossutil
以下樣本示範使用命令列工具ossutil 2.0下載檔案。使用前需要安裝並配置ossutil 2.0,工具預設使用外網訪問Endpoint,也可通過-e參數顯式指定外網訪問Endpoint。
ossutil cp oss://example-bucket/dest.jpg dest.jpg -e oss-ap-southeast-1.aliyuncs.comSDK
以下展示常見語言的SDK整合樣本,更多語言的整合樣本請參見SDK參考中對應語言的初始化方法。
Java SDK V2
SDK初始化用戶端時預設使用外網訪問網域名稱,只需填寫地區(Region)ID即可完成配置,無需額外指定Endpoint。完整的初始化程式碼範例請參見OSS Java SDK V2(預覽版)。
Java SDK V1
初始化OSS用戶端執行個體時指定外網訪問網域名稱,完整的初始化代碼請參見OSS Java SDK V1。
// 以新加坡的外網訪問Endpoint為例
String endpoint = "oss-ap-southeast-1.aliyuncs.com";
// 初始化OSS用戶端
OSS ossClient = OSSClientBuilder.create()
.credentialsProvider(provider)
.clientConfiguration(clientBuilderConfiguration)
.region("ap-southeast-1")
.endpoint(endpoint)
.build();Python SDK V2
SDK初始化用戶端時預設使用外網訪問網域名稱,只需填寫地區(Region)ID即可完成配置,無需額外指定Endpoint。完整的初始化程式碼範例請參見OSS Python SDK V2。
Python SDK V1
初始化OSS用戶端執行個體時指定外網訪問網域名稱,完整的初始化代碼請參見初始化(Python SDK V1)。
# 以新加坡的外網訪問Endpoint為例
endpoint = "https://oss-ap-southeast-1.aliyuncs.com"
# 初始化OSS用戶端執行個體
bucket = oss.Bucket(auth, endpoint, bucket, region="ap-southeast-1")Go SDK V2
SDK初始化用戶端時預設使用外網訪問網域名稱,只需填寫地區(Region)ID即可完成配置,無需額外指定Endpoint。完整的初始化程式碼範例請參見OSS Go SDK V2。
Go SDK V1
初始化OSS用戶端執行個體時指定外網訪問網域名稱,完整的初始化代碼請參見配置用戶端。
// 建立OSS用戶端執行個體
client, _ := oss.New(
"oss-ap-southeast-1.aliyuncs.com", // 以新加坡的外網訪問Endpoint為例
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("ap-southeast-1"),
)內網訪問網域名稱
專為阿里雲內網環境設計,適用於同地區的ECS執行個體訪問OSS等情境。通過內網訪問可避免產生外網流量費用,同時獲得更穩定的網路連接和更低的訪問延遲。
網域名稱格式
Endpoint:
oss-[RegionID]-internal.aliyuncs.comBucket網域名稱:
[BucketName].oss-[RegionID]-internal.aliyuncs.com
使用建議
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網段,確保網路連通性。
訪問樣本
ossutil
以下樣本示範在同地區的ECS中使用命令列工具ossutil 2.0下載檔案。使用前需要安裝並配置ossutil 2.0,可在配置時使用內網訪問Endpoint,也可在下載時通過-e參數指定內網訪問Endpoint。
ossutil cp oss://example-bucket/dest.jpg dest.jpg -e oss-ap-southeast-1-internal.aliyuncs.comSDK
以下展示常見語言的SDK整合樣本,更多語言的整合樣本請參見SDK參考中對應語言的初始化方法。
Java SDK V2
初始化OSS用戶端執行個體時通過指定Endpoint或useInternalEndpoint(true)設定使用內網訪問網域名稱,完整的初始化代碼請參見OSS Java SDK V2(預覽版)。
方式一:指定內網訪問Endpoint
// 以新加坡的內網訪問Endpoint為例 String endpoint = "oss-ap-southeast-1-internal.aliyuncs.com"; // 初始化OSS用戶端 OSSClient client = OSSClient.newBuilder() .credentialsProvider(provider) .region("ap-southeast-1") .endpoint(endpoint) .build();方式二:通過
useInternalEndpoint(true)設定// 初始化OSS用戶端 OSSClient client = OSSClient.newBuilder() .credentialsProvider(provider) .region("ap-southeast-1") .useInternalEndpoint(true) .build();
Java SDK V1
初始化OSS用戶端執行個體時指定內網訪問網域名稱,完整的初始化代碼請參見OSS Java SDK V1。
// 以新加坡的內網訪問Endpoint為例
String endpoint = "oss-ap-southeast-1-internal.aliyuncs.com";
// 初始化OSS用戶端
OSS ossClient = OSSClientBuilder.create()
.credentialsProvider(provider)
.clientConfiguration(clientBuilderConfiguration)
.region("ap-southeast-1")
.endpoint(endpoint)
.build();Python SDK V2
初始化OSS用戶端執行個體時通過指定Endpoint或use_internal_endpoint = True設定使用內網訪問網域名稱,完整的初始化代碼請參見OSS Python SDK V2。
方式一:指定內網訪問Endpoint
# 以新加坡的內網訪問Endpoint為例 config.endpoint = "https://oss-ap-southeast-1-internal.aliyuncs.com" # 初始化OSS用戶端 client = oss.Client(config)方式二:通過
use_internal_endpoint = True設定config.use_internal_endpoint = True # 初始化OSS用戶端 client = oss.Client(config)
Python SDK V1
初始化OSS用戶端執行個體時指定內網訪問網域名稱,完整的初始化代碼請參見初始化(Python SDK V1)。
# 以新加坡的內網訪問Endpoint為例
endpoint = "oss-ap-southeast-1-internal.aliyuncs.com"
# 初始化OSS用戶端執行個體
bucket = oss.Bucket(auth, endpoint, bucket, region="ap-southeast-1")Go SDK V2
初始化OSS用戶端執行個體時通過指定Endpoint或WithUseInternalEndpoint(true)設定使用內網訪問網域名稱,完整的初始化代碼請參見OSS Go SDK V2。
方式一:指定內網訪問Endpoint
// 配置OSS用戶端,設定憑證提供者和服務地區 config := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion("ap-southeast-1"). WithEndpoint("oss-ap-southeast-1-internal.aliyuncs.com") // 以新加坡的內網訪問Endpoint為例 // 初始化OSS用戶端執行個體 client := oss.NewClient(config)方式二:通過
WithUseInternalEndpoint(true)設定// 配置OSS用戶端,設定憑證提供者和服務地區 config := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion("ap-southeast-1"). WithUseInternalEndpoint(true) // 初始化OSS用戶端執行個體 client := oss.NewClient(config)
Go SDK V1
初始化OSS用戶端執行個體時指定內網訪問網域名稱,完整的初始化代碼請參見配置用戶端。
// 建立OSS用戶端執行個體
client, _ := oss.New(
"oss-ap-southeast-1-internal.aliyuncs.com", // 以新加坡的內網訪問Endpoint為例
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("ap-southeast-1"),
)傳輸加速網域名稱
啟用通過傳輸加速訪問OSS功能後可使用的專用網域名稱,通過Global Acceleration節點最佳化資料轉送路徑,適用於跨地區、跨國際的高速上傳/下載情境,顯著改善遠距離訪問的網路品質。
網域名稱格式
Endpoint:
oss-accelerate.aliyuncs.comBucket網域名稱:
[BucketName].oss-accelerate.aliyuncs.com
訪問樣本
ossutil
以下樣本示範在新加坡地區的ECS中使用命令列工具ossutil 2.0下載跨國地區的檔案。使用前需要安裝並配置ossutil 2.0,可在配置時使用傳輸加速Endpoint,也可在下載時通過-e參數指定傳輸加速Endpoint。
ossutil cp oss://example-bucket/dest.jpg dest.jpg -e oss-accelerate.aliyuncs.comSDK
以下展示常見語言的SDK整合樣本,更多語言的整合樣本請參見SDK參考中對應語言的初始化方法。
Java SDK V2
初始化OSS用戶端執行個體時通過指定Endpoint或useAccelerateEndpoint(true)設定使用傳輸加速網域名稱,完整的初始化代碼請參見OSS Java SDK V2(預覽版)。
方式一:指定傳輸加速Endpoint
String endpoint = "oss-accelerate.aliyuncs.com"; // 初始化OSS用戶端 OSSClient client = OSSClient.newBuilder() .credentialsProvider(provider) .region("ap-southeast-1") .endpoint(endpoint) .build();方式二:通過
useAccelerateEndpoint(true)設定// 初始化OSS用戶端 OSSClient client = OSSClient.newBuilder() .credentialsProvider(provider) .region("ap-southeast-1") .useAccelerateEndpoint(true) .build();
Java SDK V1
初始化OSS用戶端執行個體時指定傳輸加速網域名稱,完整的初始化代碼請參見OSS Java SDK V1。
String endpoint = "oss-accelerate.aliyuncs.com";
// 初始化OSS用戶端
OSS ossClient = OSSClientBuilder.create()
.credentialsProvider(provider)
.clientConfiguration(clientBuilderConfiguration)
.region("ap-southeast-1")
.endpoint(endpoint)
.build();Python SDK V2
初始化OSS用戶端執行個體時通過指定Endpoint或use_accelerate_endpoint = True設定使用傳輸加速網域名稱,完整的初始化代碼請參見OSS Python SDK V2。
方式一:指定傳輸加速Endpoint
config.endpoint = "oss-accelerate.aliyuncs.com" # 初始化OSS用戶端 client = oss.Client(config)方式二:通過
use_accelerate_endpoint = True設定config.use_accelerate_endpoint = True # 初始化OSS用戶端 client = oss.Client(config)
Python SDK V1
初始化OSS用戶端執行個體時指定傳輸加速網域名稱,完整的初始化代碼請參見初始化(Python SDK V1)。
endpoint = "oss-accelerate.aliyuncs.com"
# 初始化OSS用戶端執行個體
bucket = oss.Bucket(auth, endpoint, bucket, region="ap-southeast-1")Go SDK V2
初始化OSS用戶端執行個體時通過指定Endpoint或WithUseAccelerateEndpoint(true)設定使用傳輸加速網域名稱,完整的初始化代碼請參見OSS Go SDK V2。
方式一:指定傳輸加速Endpoint
// 配置OSS用戶端,設定憑證提供者和服務地區 config := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion("ap-southeast-1"). WithEndpoint("oss-accelerate.aliyuncs.com") // 初始化OSS用戶端執行個體 client := oss.NewClient(config)方式二:通過
WithUseAccelerateEndpoint(true)設定// 配置OSS用戶端,設定憑證提供者和服務地區 config := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion("ap-southeast-1"). WithUseAccelerateEndpoint(true) // 初始化OSS用戶端執行個體 client := oss.NewClient(config)
Go SDK V1
初始化OSS用戶端執行個體時指定傳輸加速網域名稱,完整的初始化代碼請參見配置用戶端。
// 建立OSS用戶端執行個體
client, _ := oss.New(
"oss-accelerate.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("ap-southeast-1"),
)協議支援
HTTP/HTTPS協議
所有地區的Endpoint和Bucket網域名稱均支援HTTP和HTTPS兩種協議訪問。為確保資料轉送安全性,強烈建議在生產環境中使用HTTPS協議。
IP協議
所有地區均支援IPv4訪問,部分地區額外支援IPv4和IPv6雙棧訪問Endpoint,允許IPv6網路環境下的用戶端直連OSS資源。對於支援IPv6的Endpoint,用戶端無需特殊配置,在純IPv6或雙棧網路環境中,DNS會自動解析並優先使用IPv6地址建立串連。傳統網路環境下的ECS執行個體不支援通過IPv4協議或IPv6協議訪問OSS資源。