• 使用OSS中的数据作为机器学习的训练样本
  • DataLakeAnalytics+OSS:基于OSS的Severless的交互式查询分析
  • 通过HDP2.6 Hadoop读取和写入OSS数据
  • 通过CDH5 Hadoop读取和写入OSS数据
  • Apache Impala(CDH6)查询OSS数据
  • Spark使用OSS Select加速数据查询
  • 基于OSS+MaxCompute构建数据仓库
  • 数据备份和容灾
  • 备份存储空间
  • 数据库备份到OSS
  • 通过云存储网关使用OSS服务
  • 本地共享文件夹访问
  • 本地磁盘访问
  • OSS上传提示Name or service not known报错
  • osscmd工具上传提示InvalidBucketName报错
  • 调用Callback时页面显示400 call back error
  • OSS服务.netSDK中使用MemoryStream上传文件为空的解决方法
  • OSS下载rar格式文件,打开后乱码
  • IE浏览器下载OSS文件后扩展名被省略
  • OSS支持FTP吗?
  • OSS文件实现强制下载的方法
  • OSS Post请求的Policy设置方法
  • OSS通过range参数获取部分文件
  • OSS的文件更新后,部分地区下载的文件仍是旧的版本
  • 在OSS控制台中读请求与写请求次数统计的来源
  • 使用OSS的JS SDK上传大于100K的文件时报错
  • OSS验证Refer防盗链是否生效
  • OSS变通实现IP黑白名单
  • STS生成的临时账户授权检查逻辑
  • OSS的Bucket权限管理
  • 如何获取AccessKeyId和AccessKeySecret
  • Access key对OSS的bucket控制权限太高,需要对bucket更细粒度的权限控制
  • RAM子账户授权OSS单个bucket中部分文件的访问权限
  • oss域名访问提示Anonymous access is forbidden for this operation.
  • OSS细粒度的权限控制
  • OSS异常流量排查及防护
  • 如何给子账号赋权OSS的操作?
  • 如何授权RAM子账号列举指定文件目录
  • Python sdk中multiupload上传如何验证文件完整性
  • OSS MD5一致性校验说明
  • OSS下载内容与实际内容不一致
  • 域名/网络
  • OSS如何查看Bucket内网、外网域名地址
  • ECS用户如何正确使用OSS内网地址?
  • OSS是否支持Bucket作为三级域名的访问方式?
  • OSS是否支持HTTPS访问
  • 通过反向代理访问OSS的HTTPS域名
  • OSS+CDN访问文件直接下载
  • OSS设置Object更新时自动刷新CDN缓存
  • OSS使用SDK访问Bucket提示Endpoint错误
  • OSS设置CORS规则以后还是报No 'Access-Control-Allow-Origin'的解决方法
  • 访问OSS资源或者使用SDK时提示“ using the specified endpoint”
  • OSS绑定域名时验证域名所有权
  • 为什么OSS内网域名无法ping通
  • DNS解析
  • 站点中如何应用OSS资源
  • OSS如何开启CDN加速服务
  • OSS触发FIN的条件
  • OSS上传或下载的带宽限制
  • OSS上传慢
  • 如何停止绑定域名时默认开启的CDN服务?
  • 如何设置HTTPS证书托管
  • 对象存储OSS中Bucket的访问域名使用介绍
  • 对象存储OSS查看Bucket统计和Object统计方法
  • 通过OSS控制台资源监控报表功能了解Bucket使用情况
  • 通过OSS控制台概览了解Bucket相关属性
  • OSS通过管理控制台查看资源监控报表的请求次数统计信息
  • 如何授权子账号云查看OSS控制台总概览的基础数据
  • 存储空间(bucket)管理
  • 如何获取OSS上每个文件夹的大小
  • OSS中可以重命名Bucket吗?是否支持Object迁移?
  • OSS如何一键删除Bucket
  • OSS对object和目录的移动与修改操作
  • OSS的Bucket、Object、文件目录命名规范汇总
  • OSSFS通过www账户挂载Bucket
  • OSS API设置LifeCycle提示时间格式错误
  • OSS开启访问日志
  • 查找OSS Object的访问操作记录
  • OSS日志里面206代表什么
  • OSS的Bucket每天会自动生成名称中包含日期的Object
  • OSS数据操作常见问题FAQ
  • Bucket下出现异常文件如何排查
  • 如何查看存储空间大小
  • OSS可创建Bucket个数限制,容量是否需要扩容?
  • 如何删除Bucket
  • 文件(object)管理
  • OSS怎么更改Object元数据信息
  • OSS中LifeCycle删除文件的策略
  • 判断OSS文件被删除
  • OSS删除碎片文件
  • 当Object名称中存在不可见字符如何处理?
  • OSS有哪些批量操作?
  • OSS静态文件的打开方式
  • OSS的gzip压缩如何使用?
  • IE浏览器中浏览OSS的object URL中文文件名乱码
  • OSS 如何设置 Content-Type(MIME)?
  • 上传Object后如何获取访问URL
  • 如何给文件重命名
  • 如何修改、更新、编辑文件?
  • OSS上传文件大小限制
  • OSS SDK如何进行批量操作?
  • Java实现生成URL签名的代码示例
  • PHP实现OSS的签名URL
  • OSS如何通过sdk获取object的签名URL
  • OSS中的时间标准
  • 控制台获取签名链接后过一段时间超时
  • 调用oss sdk操作报错:SignatureDoesNotMatch
  • Object签名URL相关问题
  • 签名错误 (signature not match)
  • API/SDK
  • OSS支持时间同步的sdk
  • nternal.aliyuncs.com...
  • Oss Java sdk实现listobject(列出所有的object)
  • 使用OSS的javasdk的contentMD5出现log4j警告
  • OSS Java SDK超时&重传代码样例
  • 测试版PHP SDK中不能自动检测所需PHP模块的原因
  • OSS API文档 “Date”字段的GMT格式说明
  • - assumed...
  • OSS API返回结果有JSON格式的吗?
  • Python sdk查询所有object列表
  • iOS SDK和Android SDK如何开启log?
  • OSS图片处理服务不支持ICO格式图片
  • OSS图片处理服务绑定域名时提示:域名绑定在自己的其他Bucket上
  • 对象存储OSS控制台操作—图片鉴黄
  • OSS上传图片时exif信息处理规则
  • PHP SDK 2.0.1是否支持图片处理服务
  • OSS 图片处理服务配置文件缓存的方法
  • 怎样用多个域名来使用oss图片服务
  • 图片处理服务处理后的PNG图片的透明背景变黑
  • OSS 图片处理如何保护原始图片不被访问
  • OSS图片处理访问报Forbidden access to the original image错误的处理方法
  • 使用图片处理服务,原图无法访问。报错accessdenied。
  • OSS图片处理服务导致CORS配置失效
  • OSS图片处理URL访问报错NoSuchStyle, NoSuchKey, NoSuchFile
  • 图片的原图是正常的,被图片处理后就旋转了,该怎样处理
  • OSS图片处理对原图和缩略图的限制说明
  • OSS 如何将图片强制缩放成正方形并且不裁剪
  • 图片处理服务是否可以支持跨域操作
  • OSS上传图片访问URL返回http code值为403
  • 为防止存储于阿里云对象存储OSS的数据被其他人盗链而产生额外的费用,需要在OSS控制台的防盗链功能设置Referer白名单,限制仅白名单中的域名可以访问Bucket内的资源。本文主要介绍OSS防盗链配置的配置示例及常见问题的解决方法。

    OSS防盗链可通过在OSS控制台或使用OSS SDK设置Bucket属性来配置,防盗链的设置请参见 防盗链

    OSS防盗链配置示例

    help.example.com 域名为例,配置防盗链,具体配置示例如下:

  • 设置不允许Referer为空的同时设置Referer白名单 说明 :当设置不允许refer为空,Referer白名单为空时,不会检查Referer字段是否为空,所以这个设置无效,因此需要设置Referer白名单。
  • 设置方法:
    请参见 设置防盗链 ,在 防盗链 区域,设置不允许Referer为空,并在 Referer 框中,Referfer白名单设置的示例如下:
  • Referer白名单设置为 http://help.example.com/index.html ,但由于OSS的Referer检查是通过前缀匹配的,因此其他网页 将无法访问, 比如 http://help.example.com/logo.html ,所以Referer白名单可以配置成 http://help.example.com/
  • 假设还有其他域名需要访问,例如 http://example.help.example.com/index.html 也需要访问,那么Referer白名单应该添加为 http://*.help.example.com/
  • 防盗效果:
  • 访问 http://[$Bucket_URL]/index.html ,Referer为空,返回403错误码。
  • [$Bucket_URL] 为Bucket中文件的访问地址。
  • 不允许空Referer的请求,因此返回403错误码。
  • 访问 http://help.example.com/logo.html ,请求来自于源站,访问成功。
  • 访问 http://help.example123.com/index.html ,请求来自于盗链网站,OSS返回403错误,防盗链成功。
  • 访问 http://example.help.example.com/index.html ,请求来自于源站的三级域名,访问成功。 说明 :如果Referer白名单中只有 http://help.example.com/ ,浏览器模拟三级域名访问时,三级域名无法匹配Referer白名单,OSS就会返回403错误码。
  • 设置允许Referer为空的同时设置Referer白名单
  • 设置方法:
    请参见 设置防盗链 ,在 防盗链 区域,设置允许Referer为空,并在 Referer 框中,Referfer白名单设置的示例如下:
    http://help.example.com/
    http://*.help.example.com/
    系统显示类似如下。
  • 访问 http://[$Bucket_URL]/index.html ,Referer为空,访问成功。
  • 访问 http://help.example.com/logo.html ,请求来自于源站,访问成功。
  • 访问 http://help.example123.com/index.html ,请求来自于盗链网站,OSS返回403错误,防盗链成功。
  • 访问 http://example.help.example.com/index.html ,请求来自于源站的三级域名,访问成功。
  • 如果设置防盗链之后,无法访问OSS资源,请在浏览器中查看Header的Referer值,查看配置是否正确。比如,在Chrome浏览器中按 F12 键,打开 开发者工具 ,在 Network 中查看具体请求携带的Referer,检查与对应OSS中设置的Referer是否匹配。如果不匹配,请修改参见 OSS防盗链配置注意事项 ,检查防盗链配置,重新设置防盗链。

    说明 :如果您设置了不允许Referer为空,访问出现异常,请先查看浏览器返回的Referer,然后在防盗链配置中将其添加相应的链接。

  • 检查Bucket的权限是否为公共读写,建议改为私有权限。
  • 检查是否开启了CDN。CDN的Referer设置不能为空,且防盗链名单需与OSS一致,CDN配置Referer防盗链的方法请参见 配置Referer防盗链
    :如果您使用了CDN加速,Referer建议在CDN上进行配置。因为如果在OSS进行配置,CDN上第一次请求带Referer回源OSS返回正常的文件,CDN上进行缓存,后面即使不带Referer也会响应正常的文件,因此建议在CDN上配置。
  • 如果问题还是无法解决,请参见 由于防盗链异常导致访问CDN返回403错误的解决方法
    注意 :调试OSS的Referer时,请先排除CDN的影响,且优先调试OSS的Referer,再调试CDN的Referer。
  • 问题二:当Referer配置错误时HTTP访问提示403错误且OSS提示“You are denied by bucket referer policy.”错误
    如果设置的Referer不允许为空,则只有预先设定好的Referer才可以进行访问,其他Referer访问会被拦截。在浏览器中直接请求图片URL时Referer为空,故请求失败返回403错误。如无特殊需求,可将设置改为允许空Referer,详情请参见 设置OSS防盗链后访问OSS资源出现“You are denied by bucket referer policy”错误
  • 问题三: *.domain.com 可以匹配二级域名,但无法匹配 domain.com ,另外添加一行 domain.com 也没效果,如何配置?
    一般的Referer中会带 http 或者 https 这样的参数,可以通过Chrome浏览器的开发者模式查看请求的Referer是,然后再进行设置。需要添加 http:// https://
  • 问题四:防盗链设置没有生效该如何解决?
    在浏览器中查看Header的Referer,查看配置是否正确。比如,在Chrome浏览器中按 F12 键,打开 开发者工具 ,在 Network 中查看具体请求携带的Referer,检查与对应OSS中设置的Referer是否匹配。详情请参见 如何验证OSS的Referer防盗链是否生效
  • Referer的介绍

    OSS防盗链是通过Referer来实现的,所以也简称为Refer或refer,Referer详细的介绍及配置请参见 防盗链 。Referer相关解释与说明如下:

  • 什么是Referer
    Referer 是HTTP Header的一部分,表示浏览器所访问的前一个页面,可以认为是之前访问页面的链接将浏览器带到了当前页面。
  • Referer的作用
  • 防盗链:比如,网站访问自己的图片服务器,图片服务器取到Referer来判断是不是自己的域名,如果是就继续访问,不是则拦截。
  • 数据统计:比如,统计用户是从哪个链接过来访问的。
  • Referer为空
    空Referer指的是HTTP请求中Referer头部的内容为空,或者HTTP请求中不包含Referer头部。如果有下面两种情况则Referer为空。
  • 当请求并不是由链接触发产生。比如,直接通过浏览器输入地址打开页面。
  • 从HTTPS页面上的链接访问到非加密的HTTP页面时,在HTTP页面上是检查不到Referer的。
  • OSS防盗链配置注意事项

    在设置防盗链时,需要注意以下事项,更多信息请参见 设置防盗链

  • OSS防盗链配置内容包括以下两部分内容:
  • 是否允许Referer字段为空的请求访问。
  • Referer字段白名单。
  • OSS防盗链配置中需要注意以下几点:
  • 用户只有通过URL签名或者匿名访问Object时,才会做防盗链验证。如果请求Header中有 Authorization 字段时,不会做防盗链验证。
  • 一个Bucket可以支持多个Referer参数,这些参数之间由 , 分隔。
  • Referer参数支持通配符 * ? ,详细解释可参考通配符说明。
  • 用户可以设置是否允许Referer字段为空的请求访问。
  • 白名单为空时,不会检查Referer字段是否为空(不然所有的请求都会被拒绝)。
  • 白名单不为空,且设置了不允许Referer字段为空的规则,则只有Referer属于白名单的请求被允许,其它请求(包括Referer为空的请求)会被拒绝。
  • 如果白名单不为空,但设置了允许Referer字段为空的规则,则Referer为空的请求和符合白名单的请求会被允许,其它请求都会被拒绝。
  • Bucket的三种权限(private、public-read、public-read-write)都会检查Referer字段。
  • 通配符说明:
  • 星号 * :代替0个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入 AEW* ,查找以AEW开头的所有文件类型的文件,如 AEWT.txt AEWU.EXE AEWI.dll 等。要缩小范围可以输入 AEW*.txt ,查找以AEW开头,并以 .txt 为扩展名的文件,如 AEWIP.txt AEWDF.txt
  • 问号 ? :代替一个字符。如果输入 love? ,查找以love开头的一个字符结尾文件类型的文件,如 lovey lovei 等。要缩小范围可以输入 love?.doc ,查找以love开头,任意一个字符结尾,并以 .doc 为扩展名的文件,如 lovey.doc loveh.doc
  • 典型配置说明如下:
  • 所有请求都可以访问。

  • 空Referer:允许Referer为空。
  • Referer列表:空。
  • 带有规定的Referer请求或不带Referer的请求才能访问。

  • 空Referer:不允许Referer为空。
  • Referer列表: http://*.oss-cn-beijing.aliyuncs.com http://*.aliyun.com
  • 其它错误的排除请参见 访问OSS时出现403状态码的排查方法

  • 对象存储OSS
  •