OSS以HTTP RESTful API的形式對外提供服務,會為每一個儲存空間(Bucket)分配預設的訪問網域名稱。
OSS網域名稱構成規則
針對OSS的網路請求,除了GetService(ListBuckets)以及DescribeRegions API以外,其他所有請求的網域名稱都是由帶有指定Bucket資訊的第三層網域名組成的。
訪問網域名稱結構為BucketName.Endpoint
。BucketName為您的儲存空間名稱,Endpoint為儲存空間對應的地區網域名稱。
Endpoint分為外網、內網以及傳輸加速Endpoint。以華東1(杭州)地區的訪問網域名稱為例,說明如下。
外網Endpoint
外網Endpoint可以直接使用,無需額外配置。
oss-cn-hangzhou.aliyuncs.com
內網Endpoint
內網Endpoint可以直接使用,無需額外配置。
oss-cn-hangzhou-internal.aliyuncs.com
傳輸加速Endpoint
傳輸加速Endpoint又分為Global AccelerationEndpoint以及非中國內地加速Endpoint。
傳輸加速Global AccelerationEndpoint
oss-accelerate.aliyuncs.com
傳輸加速非中國內地加速Endpoint
oss-accelerate-overseas.aliyuncs.com
通過外網訪問OSS
外網指的是互連網。通過外網訪問產生的流入流量(寫)是免費的,流出流量(讀)是收費的。
外網訪問OSS有以下兩種方式。
方式一:以URL的形式訪問OSS Object
以URL形式訪問OSS Object時,與Object的讀寫權限ACL有關。
Object ACL | 公用讀取或公用讀寫 | 私人 |
URL格式 |
|
|
參數說明 |
| 除簽名資訊以外,其他參數的用法與公用讀取或公用讀寫Object相同。簽名資訊包含標識URL逾時時間的Expires、密鑰中的AccessKey ID以及Signature三種元素。 有關在檔案URL中添加簽名的具體步驟,請參見在URL中包含簽名。 |
使用樣本 | 您在華東1(杭州)地區建立了名為examplebucket的儲存空間,儲存空間下有名為example.txt的Object,該Object儲存在exampledir目錄下,且允許匿名訪問。此時,檔案URL為 | 您在華東1(杭州)地區建立了名為examplebucket的儲存空間,儲存空間下有名為example.txt的私人Object,該Object儲存在exampledir目錄下。此時,檔案URL為 |
方式二: 通過OSS SDK配置外網訪問網域名稱
OSS SDK會對您的每一個操作拼接訪問網域名稱。但您在對不同地區的Bucket進行操作的時候需要設定不同的Endpoint。
以Java SDK為例,對華東1(杭州)的Bucket進行操作時,需要在對類執行個體化時設定Endpoint。
import com.aliyun.oss.common.auth.*;
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
String endpoint = "oss-cn-hangzhou.aliyuncs.com";
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
通過內網訪問OSS
內網指的是阿里雲同地區產品之間的內部通訊網路,例如您通過ECS雲端服務器訪問同地區的OSS服務。內網產生的流入和流出流量均免費,但是請求次數仍會計費。
內網訪問OSS有以下兩種方式。
方式一:以URL的形式訪問OSS Object
以URL形式訪問OSS Object時,與Object的讀寫權限ACL有關。
Object ACL | 公用讀取或公用讀寫 | 私人 |
URL格式 |
|
|
參數說明 |
| 除簽名資訊以外,其他參數的用法與公用讀取或公用讀寫Object相同。簽名資訊包含標識URL逾時時間的Expires、密鑰中的AccessKey ID以及Signature三種元素。 有關在檔案URL中添加簽名的具體步驟,請參見在URL中包含簽名。 |
使用樣本 | 您在華東1(杭州)地區建立了名為examplebucket的儲存空間,儲存空間下有名為example.txt的Object,該Object儲存在exampledir目錄下,且允許匿名訪問。此時,檔案夾URL為 | 您在華東1(杭州)地區建立了名為examplebucket的儲存空間,儲存空間下有名為example.txt的私人Object,該Object儲存在exampledir目錄下。此時,檔案URL為 |
方式二:通過ECS使用OSS SDK配置內網Endpoint
以Java SDK為例,對華東1(杭州)地區的Bucket進行操作時,需要將Endpoint設定為華東1(杭州)地區的內網Endpoint。
import com.aliyun.oss.common.auth.*;
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
String endpoint = "oss-cn-hangzhou-internal.aliyuncs.com";
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
同一個Region的ECS和OSS之間內網互連,不同Region的ECS和OSS之間內網不互連。例如您的OSS有兩個Bucket,並且購買了華北2(北京)的ECS:
其中一個Bucket名稱為srcbucket,所在Region為華北2(北京),您可以在華北2(北京)的ECS中使用
https://srcbucket.oss-cn-beijing-internal.aliyuncs.com
來訪問srcbucket的資源。另外一個Bucket名稱為destbucket,所在Region為華北1(青島),您無法在華北2(北京)的ECS中使用
https://destbucket.oss-cn-qingdao-internal.aliyuncs.com
來訪問destbucket的資源,必須使用外網地址https://destbucket.oss-cn-qingdao.aliyuncs.com
。
通過傳輸加速網域名稱訪問OSS
OSS傳輸加速支援資料上傳、下載加速,可最佳化跨國、跨洋資料上傳、下載體驗。使用傳輸加速網域名稱前,需先開啟傳輸加速功能。開啟後,您只需將外網Endpoint替換為傳輸加速Endpoint,即可實現資料轉送加速。
以Global AccelerationEndpoint為例,通過瀏覽器訪問位於華東1(杭州)的儲存空間examplebucket根目錄下的檔案myphoto.jpg,且檔案讀寫權限ACL為公用讀取或者公用讀寫,此時檔案URL為https://examplebucket.oss-accelerate.aliyuncs.com/myphoto.jpg
。
如果myphoto.jpg的讀寫權限ACL為私人,則還要在檔案URL中添加簽名資訊。例如https://examplebucket.oss-accelerate.aliyuncs.com/myphoto.jpg?OSSAccessKeyId=nz2p***********&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272Y********
。有關在檔案URL中添加簽名的具體步驟,請參見在URL中包含簽名。
相關文檔
訪問不同的Region需要不同的Endpoint。關於Region和Endpoint對照表,請參見OSS地區和訪問網域名稱。
本文列舉的Endpoint為IPv4網域名稱。如果您需要通過IPv6協議訪問OSS,您需要使用IPv6協議的Endpoint。詳情請參見通過IPv6協議訪問OSS。
雲下機房裝置或異地ECS執行個體希望通過內網訪問OSS時,可通過CEN、Express Connect、專線、VPN等串連OSS所在地區內網網路,並配置指向OSS內網網段的路由。詳情請參見OSS內網網域名稱與VIP網段對照表。
除了使用OSS提供的網域名稱外,您可以為OSS訪問網域名稱綁定自訂網域名,實現通過自訂網域名訪問OSS。例如,為儲存空間綁定自訂網域名
static.example.com
,然後通過該網域名稱訪問OSS。OSS訪問網域名稱需攜帶Object訪問路徑才可以被訪問。如果僅使用訪問網域名稱,例如examplebucket.oss-cn-hangzhou.aliyuncs.com,會有報錯提示。如果您希望通過OSS訪問網域名稱直接存取Object,可以通過配置靜態網站託管來實現。