OSS網域名稱構成規則
針對OSS的網路請求,除了GetService這個API以外,其他所有請求的網域名稱都是帶有指定Bucket資訊的第三層網域名組成的。
訪問網域名稱規則:BucketName.Endpoint。其中Endpoint表示OSS對外服務的訪問網域名稱。OSS以HTTP RESTful API的形式對外提供服務,當訪問不同的Region的時候,需要不同的訪問網域名稱。Endpoint分內網和外網訪問網域名稱。例如華東1 Region的外網Endpoint是oss-cn-hangzhou.aliyuncs.com,內網Endpoint是oss-cn-hangzhou-internal.aliyuncs.com,Region和Endpoint對照表請參考訪問網域名稱和資料中心。
如何通過外網訪問OSS服務
這裡的外網指的是互連網。通過外網訪問產生的流入流量(寫)是免費的,流出流量(讀)是收費的。詳情請閱讀OSS服務價格頁
外網訪問OSS有如下兩種方式:
-
訪問方式1:在訪問的時候以URL的形式來表示OSS的資源的。OSS的URL構成如下。
<Schema>://<Bucket>.<外網Endpoint>/<Object> 第三層網域名訪問方式 Schema:值為HTTP或者為HTTPS Bucket:用戶的OSS儲存空間 Endpoint:用戶的Bucket所在資料中心的訪問網域名稱,這裡您需要填寫外網Endpoint Object:用戶上傳在OSS上的檔案
樣本:如您在Region為華東1,Bucketname為abc,Object為myfile/aaa.txt,那麼您的外網訪問地址為:
abc.oss-cn-hangzhou.aliyuncs.com/myfile/aaa.txt
您還可以直接將Object的URL連結放入HTML中使用,如下所示:
<img src="https://abc.oss-cn-hangzhou.aliyuncs.com/mypng/aaa.png" />
- 訪問方式2: 通過OSS SDK配置外網訪問網域名稱。
OSS SDK會幫助用戶對每一個操作拼接訪問網域名稱。但用戶在對不同區域的Bucket進行操作的時候需要設定不同的Endpoint。
以Java SDK為例,準備對華東1節點的Bucket進行操作時,需要在對類實例化時設定Endpoint:
String accessKeyId = "<key>"; String accessKeySecret = "<secret>"; String endpoint = "oss-cn-hangzhou.aliyuncs.com"; OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
如何通過內網訪問OSS服務
這裡的內網指的是阿里雲產品之間的內網通訊網路,例如您通過ECS雲端服務器訪問OSS服務。內網產生的流入流出流量均是免費的。
內網訪問OSS有如下兩種方式:
- 訪問方式1:在訪問的時候以URL的形式來表示OSS的資源的。OSS的URL構成如下。
<Schema>://<Bucket>.<內網Endpoint>/<Object> 第三層網域名訪問方式 Schema:值為HTTP或者為HTTPS Bucket:用戶的OSS儲存空間 Endpoint:用戶的Bucket所在資料中心的訪問網域名稱,這裡您需要填寫內網Endpoint。 Object:用戶上傳在OSS上的檔案
樣本:如您在Region為華東1,Bucketname為abc ,Object為myfile/aaa.txt,那麼您的內網訪問地址為:abc.oss-cn-hangzhou-internal.aliyuncs.com/myfile/aaa.txt
- 訪問方式2:通過ECS使用OSS SDK配置內網訪問網域名稱。
例如在ECS雲端服務器上的JAVA SDK的例子中配置內網Endpoint進行簡單修改:
String accessKeyId = "<key>"; String accessKeySecret = "<secret>"; String endpoint = "oss-cn-hangzhou-internal.aliyuncs.com"; OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
说明 在同一個Region的ECS和OSS之間內網是互通的,不同Region的ECS和OSS之間內網不互通。 例如您購買了華北2(cn-beijing)的ECS,其OSS有兩個Bucket:
-
其中一個Bucket叫beijingres,Region為華北2,那麼在華北2的ECS中可以使用
beijingres.oss-cn-beijing-internal.aliyuncs.com
去訪問 beijingres 的資源。 -
另外一個Bucket叫qingdaores,Region為華北1,那麼在華北2的ECS用內網地址
qingdaores.oss-cn-qingdao-internal.aliyuncs.com
是無法訪問OSS的,必須使用外網地址qingdaores.oss-cn-qingdao.aliyuncs.com
。
-