本文介绍几种特殊场景下的镜像回源配置示例。
示例一
客户A在华东1(杭州)有名为examplebucketA的Bucket,需实现如下场景:
- 当请求者访问examplefolder目录中不存在的文件时,可以从
https://example.com
站点的destfolder目录中回源文件。 - 源站中存在部分文件名以正斜线(/)开头的文件,这部分文件要正确回源到examplebucketA中。
- 需要检查回源文件的MD5值,MD5值不匹配的文件不在examplebucketA中保存。
要满足以上场景需求,请按如下步骤配置镜像回源规则:
示例二
客户B有华北2(北京)名为examplebucketB的Bucket和源站A(
https://example.com
)、源站B(https://example.org
)两个目录一致的站点,需实现如下场景:
- 当请求者访问A/example目录中不存在的文件时,从
https://example.com
站点的example目录中获取。 - 当请求者访问B/example目录中不存在的文件时,从
https://example.org
站点的example目录中获取。 - 根据源站A和源站B是否设置重定向策略,决定是否向重定向指定的地址请求文件。
要满足以上场景需求,请参照示例一中的操作指引配置以下两条镜像回源规则:
- 规则一:
参数 配置 回源类型 选中镜像。 回源条件 选中文件名前缀,并设置为A/example/。 是否替换或截取前缀 选中是否替换或截取前缀,并设置为example/。 说明 该选项仅在设置了回源条件中的文件名前缀后显示。回源地址 第一列设置为https,第二列设置为example.com,第三列置空。 3xx请求响应策略 选中跟随源站重定向请求。 说明 未选中跟随源站重定向请求时,OSS会直接将源站重定向规则指定的地址返回给请求者。 - 规则二:
参数 配置 回源类型 选中镜像。 回源条件 选中文件名前缀,并设置为B/example/。 是否替换或截取前缀 选中是否替换或截取前缀,并设置为example/。 说明 该选项仅在设置了回源条件中的文件名前缀后显示。回源地址 第一列设置为https,第二列设置为example.org,第三列置空。 3xx请求响应策略 选中跟随源站重定向请求。
以上规则配置完成后访问流程如下:
- 请求者首次访问
https://examplebucketB.oss-cn-beijing.aliyuncs.com/A/example/example.txt
。 - 如果examplebucketB中不存在A/example/example.txt文件,则OSS向
https://example.com/example/example.txt
请求文件。 - 根据源站是否设置重定向规则,请求结果如下:
- 如果源站A针对example/example.txt设置了重定向规则,则OSS会向源站重定向规则指定的地址重新发起请求,获取到文件后会将文件命名为A/example/example.txt保存至examplebucketB,并返回给请求者。
- 如果源站A未针对example/example.txt设置重定向规则,则OSS获取到文件后会将文件命名为A/example/example.txt保存至examplebucketB,并返回给请求者。
如果请求者访问https://examplebucketB.oss-cn-beijing.aliyuncs.com/B/example/example.txt
,则通过回源规则获取的文件存储在examplebucketB的B/example目录。
示例三
客户C在华东2(上海)地域有名为examplebucketC和examplebucketD的两个Bucket。其中examplebucketC为公共读,examplebucketD为私有,需实现如下场景:
- 当请求者examplebucketC根目录下examplefolder目录中不存在的文件时,可以从examplebucketD的examplefolder目录中获取目标文件。
- 允许将请求URL中携带的query string传递到源站。
- 允许将请求URL中携带的
header1
、header2
、header3
三个HTTP header传递到源站。
要满足以上场景需求,请参照示例一中的操作指引配置以下镜像回源规则:
参数 | 配置 |
---|---|
回源类型 | 选中镜像。 |
回源条件 | 选中文件名前缀,并设置为examplefolder/。 |
源站类型 | 选中回源OSS私有Bucket,并在回源Bucket下拉列表选择examplebucketD。
说明 配置源站类型时,OSS会在RAM服务中生成
AliyunOSSMirrorDefaultRole 角色,并授予该角色只读访问所有Bucket的权限(AliyunOSSReadOnlyAccess)。
|
回源地址 | 第一列设置为https,其他置空。 |
回源参数 | 选中携带请求字符串。
OSS会将URL请求中的query string 传递到源站。 |
设置HTTP header传递规则 | 选中传递指定HTTP header参数,并添加header1、header2、header3三个HTTP header。
回源规则不支持传递部分标准HTTP header,例如 |
以上规则配置完成后访问流程如下:
- 请求者首次访问
https://examplebucketC.oss-cn-shanghai.aliyuncs.com/examplefolder/example.png?caller=lucas&production=oss
。 - 如果examplebucketC中不存在examplefolder/example.png文件,则OSS会向
https://examplebucketD.oss-cn-shanghai.aliyuncs.com/examplefolder/example.png?caller=lucas&production=oss
请求文件。 - examplebucketD会根据传递的
?caller=lucas&production=oss
参数统计访问信息,并将example.png返回给OSS。 - OSS会将获取的文件命名为examplefolder/example.png,并将命名后的文件存储至examplebucketC。
如果请求中还携带了header1、header2、header3的HTTP header时,也会被传递到examplebucketD。