512
windows
用戶鑒權__接入圖片服務_老版圖片服務手冊_對象存儲 OSS-阿裏雲
如果用戶需要不經過任何授權,通過瀏覽器即可匿名訪問圖片服務來處理圖片,需要在創建Bucket的時候將Bucket的權限設置為公共讀。
創建Bucket
- 控製台:創建Bucket
- SDK:Java SDK-Bucket中新建Bucket
- API:Put Bucket
設置Bucket權限
- 控製台: 創建Bucket權限設置
- SDK:Java SDK-Bucket中設置Bucket ACL
- API:Put BucketACL
默認創建的Bucket權限是私有讀寫,Object默認繼承Bucket的權限。 如果用戶需要通過圖片服務訪問私有的Object,需要進行身份鑒權。
圖片服務的用戶鑒權方式和OSS是一致的,有兩種鑒權方式:
- 在Header中包含簽名
- 在URL中包含簽名
具體可參考在Header中包含簽名和在URL中包含簽名。
在URL中包含簽名
假定用戶綁定的域名www.test.com
對應的頻道名字為image-demo
,object名字為example.jpg
,轉換字符串為100w.jpg
。
首先需要計算Signature字段,計算方法如下:
Signature = base64(hmac-sha1(AccessKeySecret,
VERB + "n"
+ Content-MD5 + "n"
+ Content-Type + "n"
+ Expires + "n"
+ CanonicalizedOSSHeaders
+ CanonicalizedResource))
- AccessKeySecret表示簽名所需的秘鑰
- VERB表示HTTP請求方法,例如PUT,GET,DELETE等
- Content-MD5表示請求內容數據的MD5值,對於圖片處理服務這裏為空字符串
- Content-Type表示請求內容的類型,對於圖片處理服務這裏為空字符串
- Expires表示授權給用戶URL簽名過期時間
- CanonicalizedOSSHeaders表示HTTP中的ObjectMeta組合,對於圖片處理服務這裏為空字符串
- CanonicalizedResource 表示用戶想要訪問的OSS資源,在圖片處理服務中這項的組成,格式為/channelname/object@處理參數。
- 構建CanonicalizedResource的方法如下:
- 將CanonicalizedResource置成空字符串("")
- 放入要訪問的圖片服務資源:“`/channelname/object”(無Object則不填)
- 在結尾添加處理參數:
@處理參數
,(無處理參數則不填)。此時CanonicalizedResource例子如:/channelname/object@100w.jpg
。 - 如果涉及樣式管理操作,那麼將這些查詢字符串及其請求值按照字典序,以
&
分割,添加到CanonicalizedResource中。此時的CanonicalizedResource例子:/channelname?style&styleName=YourStyleName
例子中的CanonicalizedResource為/image-demo/example.jpg@100w.jpg
。
注意:上例中的轉換字符串可以是簡單縮略,文字水印,圖片水印、管道和樣式(樣式的分隔符是@!)
這裏需要注意的是,使用URL簽名中Expires和CanonicalizedResource不能為空。
最後生成在URL簽名,必須在參數後包含OSSAccessKeyId、Expires、Signature這三項,具體生成方法可以參考OSS的API文檔中的在URL中包含簽名,上文的例子生成的URL簽名如下:
https://www.test.com/example.jpg%40100w.jpg?OSSAccessKeyId=j4y55h3z88ihxxhlr9nhjjis&Expires=1392949804&Signature=IDBJ09e8Ow4GaPRM1yIf7plH/CI%3D
在Header中包含簽名
除了在URL中包含簽名之外,還可以在HTTP請求的Header中包含簽名,簽名是由Authorization這個Header指定的,具體的構成規則如下:
"Authorization: OSS " + AccessKeyId + ":" + Signature
Signature = base64(hmac-sha1(AccessKeySecret,
VERB + "n"
+ Content-MD5 + "n"
+ Content-Type + "n"
+ Date + "n"
+ CanonicalizedOSSHeaders
+ CanonicalizedResource))
- AccessKeySecret表示簽名所需的秘鑰
- VERB表示HTTP請求方法,例如PUT,GET,DELETE等
- Content-MD5表示請求內容數據的MD5值,對於圖片處理服務這裏為空字符串
- Content-Type表示請求內容的類型,對於圖片處理服務這裏為空字符串
- Date表示此次操作的時間,且必須為HTTP1.1中支持的GMT格式
- CanonicalizedOSSHeaders表示 http中的object meta組合,對於圖片處理服務這裏為空字符串
- CanonicalizedResource構造方法請參考上文URL簽名中的CanonicalizedResource的生成方法。
需要注意的
- Date和CanonicalizedResource不能為空
- 如果請求中的Date時間和OSS服務器的時間差正負15分鍾以上,OSS圖片處理服務將拒絕該服務,並返回HTTP 403錯誤。
最後更新:2016-11-23 17:16:08
上一篇:
關鍵詞__接入圖片服務_老版圖片服務手冊_對象存儲 OSS-阿裏雲
下一篇:
使用SDK處理圖片__接入圖片服務_老版圖片服務手冊_對象存儲 OSS-阿裏雲
雲數據庫實例健康診斷__工作說明書_尊享服務_支持計劃-阿裏雲
添加域名分組__域名分組接口_API文檔_雲解析-阿裏雲
概覽__常見日誌格式_用戶指南_日誌服務-阿裏雲
將多個API授權給APP__授權相關接口_API_API 網關-阿裏雲
RAM 中可對 ECS 資源進行授權的 Action__借助 RAM 實現子賬號對主賬號的 ECS 資源訪問_API 參考_雲服務器 ECS-阿裏雲
2.3 特色功能__第二章 基本概念_使用手冊_分析型數據庫-阿裏雲
StopLoadBalancerListener__Listener相關API_API 參考_負載均衡-阿裏雲
名稱解釋__產品概述_Lite用戶使用手冊_性能測試-阿裏雲
查詢應用加固結果接口__應用加固API_API手冊_移動安全-阿裏雲
創建標簽__標簽管理_用戶指南_雲數據庫 RDS 版-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲