512
阿里云
用户鉴权__接入图片服务_老版图片服务手册_对象存储 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-阿里云