本文介绍几种特殊场景下的镜像回源规则配置。
镜像回源规则的配置方式,请参见镜像回源常见配置。
示例1
客户A在华东1(杭州)有名为examplebucketA的Bucket,需实现如下场景:
- 当请求者访问examplefolder目录中不存在的文件时,可以从
https://example.com
站点的destfolder目录中回源文件。 - 源站中存在部分文件名以正斜线(/)开头的文件,这部分文件要正确回源到examplebucketA中。
- 需要检查回源文件的MD5值,MD5值不匹配的文件不在examplebucketA中保存。
配置说明如下:
参数 | 配置 |
---|---|
回源条件 | 选中文件名前缀,并设置为examplefolder/。 |
是否替换或截取前缀 | 选中是否替换或截取前缀,并设置为destfolder/。 |
回源地址 | 第一列设置为https,第二列设置为example.com,第三列置空。 |
透传/到源站 | 选中是否透传/到源站。
回源文件的文件名以正斜线(/)开头时,OSS会删除正斜线(/)后将文件保存到Bucket中。 说明 此功能已在美国(硅谷)、美国(弗吉尼亚)和华东1(杭州)地域公测,您可以提交工单申请试用。
|
检查MD5 | 选中是否检查MD5。
当回源请求中返回的response包含Content-MD5字段时,OSS会检查回源文件的MD5值与Content-MD5字段值是否匹配。
|
规则配置完成后访问流程如下:
- 请求者首次访问
https://examplebucketA.oss-cn-hangzhou.aliyuncs.com///examplefolder/example.txt
。 - 若examplebucketA中不存在//examplefolder/example.txt文件,则OSS向
https://example.com///destfolder/example.txt
请求文件。 - 获取到目标文件后,OSS进行以下操作:
- 若回源请求中返回的response包含Content-MD5字段,OSS会计算回源文件的MD5值,并与Content-MD5字段进行匹配。MD5匹配通过则将文件重命名为examplefolder/example.txt后保存到examplebucketA,并将文件返回给请求者;匹配不通过时仅返回文件给用户,不保存该文件到examplebucketA。
- 若回源请求中返回的response不包含Content-MD5字段,OSS将文件重命名为examplefolder/example.txt后保存到examplebucketA,并将文件返回给请求者。
示例2
客户B有华北2(北京)名为examplebucketB的Bucket和源站A(
https://exampleA.com
)、源站B(https://exampleB.com
)两个目录一致的站点,需实现如下场景:
- 当请求者访问pathA/example目录中不存在的文件时,从
https://exampleA.com
站点的example目录中获取。 - 当请求者访问pathB/example目录中不存在的文件时,从
https://exampleB.com
站点的example目录中获取。 - 两个源站针对某些文件还设置了重定向策略,需要跟随重定向获取最终数据保存到exampleBucketB中。
此需求需配置两条镜像回源规则,配置说明如下:
- 规则一:
参数 配置 回源条件 选中文件名前缀,并设置为A/example/。 是否替换或截取前缀 选中是否替换或截取前缀,并设置为example/。 回源地址 第一列设置为https,第二列设置为exampleA.com,第三列置空。 3xx请求响应策略 选中跟随源站重定向请求。 说明 未选中跟随源站重定向请求时,OSS会直接将源站重定向规则指定的地址返回给请求者。 - 规则二:
参数 配置 回源条件 选中文件名前缀,并设置为B/example/。 是否替换或截取前缀 选中是否替换或截取前缀,并设置为example/。 回源地址 第一列设置为https,第二列设置为exampleB.com,第三列置空。 3xx请求响应策略 选中跟随源站重定向请求。
规则配置完成后访问流程如下:
- 请求者首次访问
https://examplebucketB.oss-cn-beijing.aliyuncs.com/A/example/example.txt
。 - 若examplebucketA中不存在A/example/example.txt文件,则OSS向
https://exampleA.com/example/example.txt
请求文件。 - 根据源站是否设置重定向规则,请求结果如下:
- 若源站A针对example/example.txt设置了重定向规则,则OSS会向源站重定向规则指定的地址重新发起请求,获取到文件后会将文件命名为A/example/example.txt保存至examplebucketA,并返回给请求者。
- 若源站A未针对example/example.txt设置重定向规则,则OSS获取到文件后会将文件命名为A/example/example.txt保存至examplebucketA,并返回给请求者。
https://examplebucketB.oss-cn-beijing.aliyuncs.com/B/example/example.txt
,则通过回源规则获取的文件存储在examplebucketB的B/example目录。
示例3
客户C在华东2(上海)地域有名为examplebucketC和examplebucketD的两个Bucket。其中examplebucketC为公共读,examplebucketD为私有,需实现如下场景:
- 当请求者examplebucketC根目录下examplefolder目录中不存在的文件时,可以从examplebucketD的examplefolder目录中获取目标文件。
- 允许将请求URL中携带的query string传递到源站。
- 允许将请求URL中携带的
headerA
、headerB
、headerC
三个HTTP header传递到源站。
配置说明如下:
参数 | 配置 |
---|---|
回源条件 | 选中文件名前缀,并设置为examplefolder/。 |
源站类型 | 选中回源OSS私有Bucket,并在回源Bucket下拉列表选择examplebucketD。
说明 配置源站类型时,OSS会在RAM服务中生成
AliyunOSSMirrorDefaultRole 角色,并授予该角色只读访问所有Bucket的权限(AliyunOSSReadOnlyAccess)。
|
回源地址 | 第一列设置为https,其他置空。 |
回源参数 | 选中携带请求字符串。
OSS会将URL请求中的query string 传递到源站。 |
设置HTTP header传递规则 | 选中传递指定HTTP header参数,并添加headerA、headerB、headerC三个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。