原图保护功能可以防止您OSS内允许匿名访问的图片文件被盗用。开启原图保护后,匿名访问者只能使用携带样式参数的请求或通过签名URL访问原图。

背景信息

开启原图保护以后,OSS中存储的图片访问规则如下:
  • 以下方式无法访问开启原图保护的图片:
    • OSS地址直接访问,例如https://bucketname.<endpoint>/objectname
    • 携带图片处理参数的请求,例如https://bucketname.<endpoint>/objectname?x-oss-process=image/action,parame_value
  • 以下方式可以访问开启原图保护的图片:
    • 携带样式参数的请求
      • URL参数方式,例如https://bucketname.<endpoint>/objectname?x-oss-process=style/<StyleName>
      • 分隔符方式,例如https://bucketname.<endpoint>/objectname<分隔符><StyleName>
    • 携带签名的请求,例如https://bucketname.<endpoint>/objectname?OSSAccessKeyId=nz2pc56s9****9l&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2By****YEAiv4%3D

配置原图保护

  1. 登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket名称。
  3. 单击数据处理 > 图片处理 > 访问设置
  4. 访问设置面板中设置以下参数:
    参数 说明
    原图保护 打开原图保护开关。开启原图保护后,图片文件只能通过传入stylename和带签名的方式访问,禁止直接访问原文件或传入图片处理参数访问图片。
    原图保护规则 设置被保护文件的前缀和后缀,配置时注意以下事项:
    • 前缀和后缀可单独配置,也可以同时配置。同时配置时,文件名称需同时匹配前后缀才会生效。
    • 存在多条规则时,文件名称匹配任意一条规则即可生效。最多可配置10条规则。
    • 原图保护规则原图保护后缀同时配置时,文件名匹配两者中的任一配置即可生效。
    • 若选中忽略大小写,原图保护规则将忽略规则中的大小写。
    说明 原图保护规则目前已在华东2(上海)地域公测,请联系技术支持申请试用。
    原图保护后缀 设置被保护的原图后缀,只有匹配指定后缀的原图会被保护。
    自定义分隔符 选中指定的分隔符之后,图片处理服务会将分隔符后的内容作为样式名称处理。目前仅支持短划线(-)、下划线(_)、正斜线(/)、感叹号(!)。详情请参见样式使用规则
  5. 单击确定

常见问题

  • 问题一:OSS开启了原图保护,直接访问图片文件时会正常返回403,但是通过CDN来进行请求时原图保护无效,返回200。

    这种情况有可能是CDN回源到了私有Bucket,造成原图保护失效。原图保护功能仅针对匿名访问文件有效,对于带签名的访问是无效的。

  • 问题二:开启原图保护后,通过签名后的URL可以访问原图?

    原图保护仅针对允许匿名访问的文件,使用签名URL访问图片属于非匿名访问,所以开启原图保护后,使用签名后的URL仍然可以访问原图。