赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 对象存储
  4. 操作指南
  5. 数据处理
  6. 图片处理
  7. 旧版图片处理指南
  8. 接入图片服务
  9. 用户鉴权

用户鉴权

  • 接入图片服务
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

本文介绍图片处理服务如何进行用户鉴权。

如果用户需要不经过任何授权,通过浏览器即可匿名访问图片服务来处理图片,需要在创建Bucket的时候将Bucket的权限设置为公共读。

创建Bucket

  • 控制台:创建存储空间

  • SDK:Java SDK-Bucket中新建Bucket

  • API:PutBucket

设置Bucket权限

  • 控制台:修改存储空间读写权限

  • SDK:Java SDK-Bucket中设置Bucket ACL

  • API:PutBucketAcl

默认创建的Bucket权限是私有读写,Object默认继承Bucket的权限。 如果用户需要通过图片服务访问私有的Object,需要进行身份鉴权。

图片服务的用户鉴权方式和OSS是一致的,有两种鉴权方式:

  • 在Header中包含签名

  • 在URL中包含签名

具体可参见在Header中包含签名和在URL中包含签名。

在URL中包含签名

假定用户绑定的域名example.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的方法如下:

    1. 将CanonicalizedResource置成空字符串("")。

    2. 放入要访问的图片服务资源:“`/channelname/object”(无Object则不填)。

    3. 在结尾添加处理参数:@处理参数(无处理参数则不填)。此时CanonicalizedResource示例:/channelname/object@100w.jpg。

    4. 如果涉及样式管理操作,那么将这些查询字符串及其请求值按照字典序,以&分割,添加到CanonicalizedResource中。此时的CanonicalizedResource例子:/channelname?style&styleName=YourStyleName。

例子中的CanonicalizedResource为/image-demo/example.jpg@100w.jpg。

说明

上例中的转换字符串可以是简单缩略、文字水印、图片水印、管道和样式(样式的分隔符是@!)

这里需要注意的是,使用URL签名中Expires和CanonicalizedResource不能为空。

最后生成的URL签名,必须在参数后包含OSSAccessKeyId、Expires、Signature这三项,具体生成方法可以参考OSS的API文档中的在URL中包含签名,上文的例子生成的URL签名如下:

http://example.com/example.jpg%40100w.jpg?OSSAccessKeyId=j4y55h******xxhlr9nhjjis&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错误。

相关文章

图片URL规则 2025-04-21 18:16

本文介绍图片处理的图片URL规则。 图片服务都是使用标准的HTTP的GET请求来访问的,所有的处理参数也是编码在URL中的。 直接

关键词 2025-04-21 18:16

本文介绍图片处理中涉及的规则,包括图像压缩、格式转换和色彩调整等,帮助您优化图片质量和处理效率。 顺序无关 转换参数中的键值对是

快速开始 2025-04-21 18:16

本文介绍如何快速开始图片处理服务。 基于控制台快速开始

用户鉴权 2025-04-21 18:16

本文介绍图片处理服务如何进行用户鉴权。 如果用户需要不经过任何授权,通过浏览器即可匿名访问图片服务来处理图片,需要在创建Bucket的时候将Bucket的权限设置为公共读。 创建Bucket

使用SDK处理图片 2025-04-21 18:16

本文主要介绍如何使用OSS的Python SDK去获取private Bucket的图片处理服务。图片处理服务通过GET操作获取处理后的图片,使用OSS的Python SDK时主要以Get Object为主,传入的参数一般是Bucket、Object。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号