閱讀904 返回首頁    go 阿裏雲 go 技術社區[雲棲]


OSS訪問域名使用規則

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構成如下:

    
    
    1. <Schema>://<Bucket>.<外網Endpoint>/<Object> 三級域名訪問方式
    2. Schema:值為HTTP或者為HTTPS
    3. Bucket:用戶的OSS存儲空間
    4. Endpoint:用戶的Bucket所在數據中心的訪問域名,這裏您需要填寫外網Endpoint
    5. Object:用戶上傳在OSS上的文件

    示例:如您在Region為華東1,Bucketname為abc,Object為myfile/aaa.txt,那麼您的外網訪問地址為:

    
    
    1. abc.oss-cn-hangzhou.aliyuncs.com/myfile/aaa.txt

    您還可以直接將Object的URL鏈接放入HTML中使用,如下所示:

    
    
    1. <img src="https://abc.oss-cn-hangzhou.aliyuncs.com/mypng/aaa.png" />
  • 訪問方式2: 通過OSS SDK配置外網訪問域名。

    OSS SDK會幫助用戶對每一個操作拚接訪問域名。但用戶在對不同區域的Bucket進行操作的時候需要設置不同的Endpoint。

    以Java SDK為例,準備對華東1節點的Bucket進行操作時,需要在對類實例化時設置Endpoint:

    
    
    1. String accessKeyId = "<key>";
    2. String accessKeySecret = "<secret>";
    3. String endpoint = "oss-cn-hangzhou.aliyuncs.com";
    4. OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);

如何通過內網訪問OSS服務

這裏的內網指的是阿裏雲產品之間的內網通信網絡,例如您通過ECS雲服務器訪問OSS服務、或阿裏雲CDN可以配置OSS內網訪問域名進行回源。內網產生的流入流出流量均是免費的。詳情請閱讀OSS服務價格頁

內網訪問OSS有如下兩種方式:

  • 訪問方式1,在訪問的時候以URL的形式來表示OSS的資源的。OSS的URL構成如下:

    
    
    1. <Schema>://<Bucket>.<內網Endpoint>/<Object> 三級域名訪問方式
    2. Schema:值為HTTP或者為HTTPS
    3. Bucket:用戶的OSS存儲空間
    4. Endpoint:用戶的Bucket所在數據中心的訪問域名,這裏您需要填寫內網Endpoint。
    5. Object:用戶上傳在OSS上的文件

    示例:如您在Region為華東1,Bucketname為abc ,Object為myfile/aaa.txt,那麼您的外網訪問地址為:

    
    
    1. abc.oss-cn-hangzhou-internal.aliyuncs.com/myfile/aaa.txt
  • 訪問方式2,通過ECS使用OSS SDK配置內網訪問域名。

    例如在ECS雲服務器上的JAVA SDK的例子中配置內網Endpoint進行簡單修改:

    
    
    1. String accessKeyId = "<key>";
    2. String accessKeySecret = "<secret>";
    3. String endpoint = "oss-cn-hangzhou-internal.aliyuncs.com";
    4. 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

最後更新:2017-09-06 16:02:25

  上一篇:go  Java常用算法1——冒泡排序
  下一篇:go  宅客孫鵬:做體驗,才有意思