閱讀397 返回首頁    go 微信


訪問OSS__訪問與控製_開發人員指南_對象存儲 OSS-阿裏雲

OSS訪問的URL

OSS是基於HTTP API的對象存儲,您在進行所有的操作的時候都需要指定訪問的OSS資源,這個資源可以是Bucket,也可以是Object。在訪問的時候,是以URL的形式來表示OSS的資源的。OSS的URL構成如下:

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

注意:

  • 這裏的Endpoint需要和Bucket所在的數據中心(Region)一致。也就是說:如果Bucket創建在杭州,就需要使用杭州的Endpoint,不能使用其他區域的Endpoint。
  • ECS訪問OSS可以使用同區域OSS的內網Endpoint。Region和對應Endpoint的列表可以參考 訪問域名

假如用戶使用HTTPS請求杭州的OSS,Bucket名字叫oss-sample, Object名字叫mytest/oss-test-object,那麼用戶訪問的三級域名為:

  1. https://oss-sample.oss-cn-hangzhou.aliyuncs.com/mytest/oss-test-object

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

  1. <img src="https://oss-example.oss-cn-hangzhou.aliyuncs.com/aliyun-logo.png" />

OSS訪問的安全性

對OSS的HTTP請求可以根據是否攜帶身份驗證信息分為兩種請求。一種是帶身份驗證的請求,一種是不帶身份驗證的匿名請求。帶身份驗證的請求表示的是如下兩種情況:

  • 請求頭部中帶Authorization,格式為OSS + AccessKeyId + 簽名字符串。
  • 請求的URL中帶OSS AccessKeyId和Signature字段。

OSS訪問驗證流程

匿名請求訪問流程

  1. 用戶的請求被發送到OSS的HTTP服務器上。
  2. OSS根據URL解析出Bucket和Object。
  3. OSS檢查Object是否設置了ACL。
    • 如果沒有設置ACL,那麼繼續 4
    • 如果設置了ACL,則判斷Object的ACL是否允許匿名用戶訪問。
      • 允許則跳到 5
      • 不允許則拒絕請求,請求結束。
  4. OSS判斷Bucket的ACL是否允許匿名用戶訪問。
    • 允許則繼續 5
    • 不允許則返回,請求結束。
  5. 權限驗證通過,返回Object的內容給用戶。

帶身份驗證請求訪問流程

  1. 用戶的請求被發送到OSS的HTTP服務器上。
  2. OSS根據URL解析出Bucket和Object。
  3. OSS根據請求的OSS的AccessKeyId獲取請求者的相關身份信息,進行身份鑒權。
    • 如果未獲取成功,則返回,請求結束。
    • 如果獲取成功,但請求者不被允許訪問此資源,則返回,請求結束。
    • 如果獲取成功,但OSS端根據請求的HTTP參數,計算的簽名和請求發送的簽名字符串不匹配,則返回,請求結束。
    • 如果身份鑒權成功,那麼繼續 4.
  4. OSS檢查Object是否設置了ACL。
    • 如果Object沒有設置ACL,那麼繼續 5
    • 如果Object設置了ACL,OSS判斷Object的ACL是否允許匿名用戶訪問。
      • 允許則跳到 6
      • 不允許則拒絕請求,請求結束。
  5. OSS判斷Bucket的ACL是否允許匿名用戶訪問。
    • 允許則繼續 6
    • 不允許則返回,請求結束。
  6. 權限驗證通過,返回Object的內容給用戶。

帶身份驗證訪問OSS的三種方法

  • 使用控製台訪問OSS:控製台中對用戶隱藏了身份驗證的細節,使用控製台訪問OSS的用戶無需關注細節。
  • 使用SDK訪問OSS:OSS提供了多種開發語言的SDK,SDK中實現了簽名算法,隻需要將AK信息作為參數輸入即可。
  • 根據API訪問OSS:如果您想用自己喜歡的語言來封裝調用RESTful API接口,您需要實現簽名算法來計算簽名。具體的簽名算法可以參考API手冊中的 在Header中包含簽名在URL中包含簽名

關於AccessKey相關的解釋及更詳細的身份驗證的操作請參見 訪問控製

最後更新:2016-11-23 16:04:09

  上一篇:go 訪問域名__訪問與控製_開發人員指南_對象存儲 OSS-阿裏雲
  下一篇:go 訪問域名和數據中心__開發人員指南_對象存儲 OSS-阿裏雲