镜像回源配置示例

本文介绍几种特殊场景下的镜像回源配置示例。

示例一

客户A在华东1(杭州)地域创建了bucket-01,需实现如下场景:

  • 当请求者访问examplefolder目录中不存在的文件时,可以从https://example.com站点的destfolder目录中回源文件。

  • 需要检查回源文件的MD5值,MD5值不匹配的文件不在bucket-01中保存。

要满足以上场景需求,请按如下步骤配置镜像回源规则:

  1. 登录OSS管理控制台

  2. 单击Bucket 列表,然后单击目标Bucket名称。

  3. 在左侧导航栏,选择数据管理 > 镜像回源

  4. 镜像回源页面,单击创建规则

  5. 创建规则面板,按以下说明配置必要参数,其他参数保留默认配置。

    参数

    配置

    回源类型

    选中镜像

    回源条件

    选中文件名前缀,并设置为examplefolder/

    替换或截取前缀

    选中是否替换或截取前缀,并设置为destfolder/

    说明

    该选项仅在设置了回源条件中的文件名前缀后显示。

    回源地址

    第一列设置为https,第二列设置为example.com,第三列置空。

    检查MD5

    选中是否检查MD5

    当回源请求中返回的response包含Content-MD5字段时,OSS会检查回源文件的MD5值与Content-MD5字段值是否匹配。

    • 匹配:客户端将获取文件,且OSS保存回源文件。

    • 不匹配:由于计算MD5需要完整的文件数据,而此时文件已经透传回客户端,所以客户端能获取到文件,但OSS不会保存回源文件。

  6. 单击确定

    以上规则配置完成后访问流程如下:

    1. 请求者首次访问https://bucket-01.oss-cn-hangzhou.aliyuncs.com/examplefolder/example.txt

    2. 如果bucket-01中不存在examplefolder/example.txt文件,则OSShttps://example.com/destfolder/example.txt请求文件。

    3. 获取到目标文件后,OSS进行以下操作:

      • 如果回源请求中返回的response包含Content-MD5字段,OSS会计算回源文件的MD5值,并与Content-MD5字段进行匹配。MD5匹配通过则将文件重命名为examplefolder/example.txt后保存到bucket-01,并将文件返回给请求者;匹配不通过时仅返回文件给用户,不保存该文件到bucket-01。

      • 如果回源请求中返回的response不包含Content-MD5字段,OSS将文件重命名为examplefolder/example.txt后保存到bucket-01,并将文件返回给请求者。

示例二

客户B在华北2(北京)地域创建了bucket-02,拥有源站A(https://example.com)、源站B(https://example.org)两个目录一致的站点,需实现如下场景:

  • 当请求者访问bucket-02/dir1目录中不存在的文件时,从https://example.com站点的example1目录中获取。

  • 当请求者访问bucket-02/dir2目录中不存在的文件时,从https://example.org站点的example2目录中获取。

  • 根据源站A和源站B是否设置重定向策略,决定是否向重定向指定的地址请求文件。

要满足以上场景需求,请参照示例一中的操作指引配置以下两条镜像回源规则:

  • 规则一:

    参数

    配置

    回源类型

    选中镜像

    回源条件

    选中文件名前缀,并设置为dir1/

    替换或截取前缀

    选中是否替换或截取前缀,并设置为example1/

    说明

    该选项仅在设置了回源条件中的文件名前缀后显示。

    回源地址

    第一列设置为https,第二列设置为example.com,第三列置空。

    3xx请求响应策略

    选中跟随源站重定向请求

    说明

    未选中跟随源站重定向请求时,OSS会直接将源站重定向规则指定的地址返回给请求者。

  • 规则二:

    参数

    配置

    回源类型

    选中镜像

    回源条件

    选中文件名前缀,并设置为dir2

    替换或截取前缀

    选中是否替换或截取前缀,并设置为example2/

    说明

    该选项仅在设置了回源条件中的文件名前缀后显示。

    回源地址

    第一列设置为https,第二列设置为example.org,第三列置空。

    3xx请求响应策略

    选中跟随源站重定向请求

以上规则配置完成后访问流程如下:

  1. 请求者首次访问https://bucket-02.oss-cn-beijing.aliyuncs.com/dir1/example.txt

  2. 如果bucket-02dir1目录中不存在example.txt文件,则OSShttps://example.com/example1/example.txt请求文件。

    • 如果源站A针对example1/example.txt设置了重定向规则,则OSS会向源站重定向规则指定的地址重新发起请求,获取到文件后会将文件命名为dir1/example1/example.txt保存至bucket-02,并返回给请求者。

    • 如果源站A未针对example1/example.txt设置重定向规则,则OSS获取到文件后会将文件命名为dir1/example1/example.txt保存至bucket-02,并返回给请求者。

  3. 如果请求者访问https://bucket-02.oss-cn-beijing.aliyuncs.com/dir2/example.txt,则通过镜像回源规则获取的文件将存储在bucket-02dir2/example2目录。

示例三

客户C在华东2(上海)地域创建了bucket-03bucket-04两个Bucket。其中,bucket-03为公共读,bucket-04为私有,需实现如下场景:

  • 当请求者bucket-03根目录下examplefolder目录中不存在的文件时,可以从bucket-04examplefolder目录中获取目标文件。

  • 允许将请求URL中携带的query string传递到源站。

  • 允许将请求URL中携带的header1header2header3三个HTTP header传递到源站。

要满足以上场景需求,请参照示例一中的操作指引配置以下镜像回源规则:

参数

配置

回源类型

选中镜像

回源条件

选中文件名前缀,并设置为examplefolder/

源站类型

选中回源OSS私有Bucket,并在回源Bucket下拉列表选择bucket-04。

说明

配置源站类型时,OSS会在RAM服务中生成AliyunOSSMirrorDefaultRole角色,并授予该角色只读访问所有Bucket的权限(AliyunOSSReadOnlyAccess)。

回源地址

第一列设置为https,其他置空。

回源参数

选中携带请求字符串

OSS会将URL请求中的query string传递到源站。

设置HTTP header传递规则

选中传递指定HTTP header参数,并添加header1header2header3三个HTTP header。

回源规则不支持传递部分标准HTTP header,例如authorizationauthorization2rangecontent-lengthdate等,以及以x-oss-oss-x-drs-开头的HTTP header。

重要

回源私有Bucket时,请勿选择传递所有HTTP header参数,否则会导致回源失败。

以上规则配置完成后访问流程如下:

  1. 请求者首次访问https://bucket-03.oss-cn-shanghai.aliyuncs.com/examplefolder/example.png?caller=lucas&production=oss

  2. 如果bucket-03中不存在examplefolder/example.png文件,则OSS会向https://bucket-04.oss-cn-shanghai.aliyuncs.com/examplefolder/example.png?caller=lucas&production=oss请求文件。

  3. bucket-04会根据传递的?caller=lucas&production=oss参数,将example.png返回给OSS。

  4. OSS会将获取的文件命名为examplefolder/example.png,并将命名后的文件存储至bucket-03。

如果请求中还携带了header1header2header3HTTP header时,也会被传递到bucket-04。