ALIYUN::OSS::Website类型用于将存储空间(Bucket)设置为静态网站托管模式并设置跳转规则(RoutingRule)。
语法
{
"Type": "ALIYUN::OSS::Website",
"Properties": {
"BucketName": String,
"WebsiteConfiguration": Map
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
BucketName | String | 是 | 否 | 存储空间名称。 | 无 |
WebsiteConfiguration | Map | 否 | 否 | 网站配置。 | 更多信息,请参见WebsiteConfiguration属性。 |
WebsiteConfiguration语法
"WebsiteConfiguration": {
"IndexDocument": Map,
"RoutingRules": List,
"ErrorDocument": Map
}
WebsiteConfiguration属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
ErrorDocument | Map | 否 | 否 | 默认错误页面的属性。 | 更多信息,请参见ErrorDocument属性。 |
IndexDocument | Map | 否 | 否 | 默认主页的属性。 | 更多信息,请参见IndexDocument属性。 |
RoutingRules | List | 否 | 否 | 路由规则列表,最多20条。 | 更多信息,请参见RoutingRules属性。 |
IndexDocument语法
"IndexDocument": {
"Type": String,
"Suffix": String,
"SupportSubDir": String
}
IndexDocument属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Suffix | String | 是 | 否 | 默认首页。 | 设置默认首页后,如果您访问以正斜杠(/)结尾的对象,OSS将返回到此默认首页。 |
SupportSubDir | String | 否 | 否 | 当访问一个子目录时,是否跳转到该子目录下的默认首页。 | 选项范围如下:
|
Type | String | 否 | 否 | 当访问一个以非正斜杠(/)结尾且不存在的对象时,在设置了默认首页之后的行为如下。 | 这仅在SupportSubDir设置为true时生效,并且在RoutingRule之后ErrorFile之前生效。 假设默认首页为index.html,尝试访问的文件路径为bucket.oss-cn-hangzhou.aliyuncs.com/abc,而ABC这个对象并不存在。此时,根据Type的不同值,其行为如下:
|
RoutingRules语法
"RoutingRules": [
{
"Condition": Map,
"RuleNumber": Integer,
"Redirect": Map
}
]
RoutingRules属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Condition | Map | 是 | 否 | 匹配条件。 | 此规则仅在满足指定的全部项目时执行。只有当此容器下的每个节点的所有条件都得到满足时,才会被视为匹配成功。更多信息,请参考Condition属性。 |
RuleNumber | Integer | 是 | 否 | 匹配并执行RoutingRule的序列号,OSS将根据此序列号顺序匹配规则。 | 如果匹配成功,则执行该规则,不再执行后续规则。 |
Redirect | Map | 是 | 否 | 指定当此规则被匹配时应执行的操作。 | 更多信息,请参考Redirect属性。 |
Condition语法
"Condition": {
"IncludeHeaders": List,
"KeyPrefixEquals": String,
"HttpErrorCodeReturnedEquals": String,
"KeySuffixEquals": String
}
Condition属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
HttpErrorCodeReturnedEquals | String | 否 | 否 | 当访问指定的对象时,为了符合此规则,必须返回此状态。当跳转规则为镜像回源类型时,此字段必须为404。 | 无 |
IncludeHeaders | List | 否 | 否 | 此规则仅当请求中包含指定的头部且其值为指定的值时才会匹配。 | 最多可设置10个这样的条件。 |
KeyPrefixEquals | String | 否 | 否 | 要匹配的对象名称的前缀。 | 无 |
KeySuffixEquals | String | 否 | 否 | 要匹配的物体名称的后缀。 | 无 |
IncludeHeaders语法
"IncludeHeaders": [
{
"Equals": String,
"Key": String
}
]
IncludeHeaders属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Key | String | 是 | 否 | header名称。 | 无 |
Equals | String | 否 | 否 | header值。 | 无 |
Redirect语法
"Redirect": {
"MirrorURL": String,
"ReplaceKeyWith": String,
"MirrorHeaders": Map,
"HttpRedirectCode": String,
"EnableReplacePrefix": Boolean,
"PassQueryString": Boolean,
"MirrorFollowRedirect": Boolean,
"ReplaceKeyPrefixWith": String,
"RedirectType": String,
"MirrorPassQueryString": Boolean,
"MirrorCheckMd5": Boolean,
"Protocol": String,
"HostName": String
}
Redirect属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
RedirectType | String | 是 | 否 | 指定跳转的类型。 | 可选范围如下:
|
EnableReplacePrefix | Boolean | 否 | 否 | 如果将此字段设置为true,对象的前缀将被ReplaceKeyPrefixWith指定的值替换。如果未指定此字段或为空,则表示对象的前缀将被截断。 | 当ReplaceKeyWith字段不为null时,此字段不能设置为true。 默认值:false |
HttpRedirectCode | String | 否 | 否 | 当进行跳转时返回的状态码。 | 此设置仅在“RedirectType”被设为“External”或“AliCDN”时有效。默认值为302。 可选值:
|
HostName | String | 否 | 否 | 跳转的域名。 | 该域名应遵循域名规范。 如果你想访问的文件是test,协议设置为 |
MirrorURL | String | 否 | 否 | 仅当RedirectType设置为Mirror时,此规则才有效。 | 源URL必须以http://或https://开头,并以正斜杠(/)结尾,OSS将据此后续拼接对象名称来构成返回的URL。 例如,若要访问的对象名为myobject,假如您将其配置为 |
MirrorHeaders | Map | 否 | 否 | 指定回传到源端的头部信息。 | 此设置仅在RedirectType设为Mirror时生效。更多信息,请参考MirrorHeaders属性。 |
MirrorFollowRedirect | Boolean | 否 | 否 | 当镜像回源后得到的结果是3xx状态码,并且指定了Location时,是否继续跳转到该指定位置以获取数据。 | 此设置仅在RedirectType配置为Mirror时生效。 例如,当我们镜像请求回到源站时,源站返回了一个302状态码并指定了Location。
|
MirrorPassQueryString | Boolean | 否 | 否 | 与PassQueryString相同,但优先于PassQueryString。 | 此设置仅在RedirectType设置为Mirror时有效。 默认值:false |
MirrorCheckMd5 | Boolean | 否 | 否 | 是否回源检查MD5。 | 此配置仅在RedirectType设置为Mirror时生效。 当MirrorCheckMd5设置为true时,如果源站返回的响应中包含了Content-Md5头信息,OSS会检查拉取的数据MD5是否与该头信息匹配,如果不匹配,则不会将数据保存到OSS上。 默认值:false。 |
PassQueryString | Boolean | 否 | 否 | 当执行跳转或回源镜像时,是否携带请求参数。 | 如果用户以包含请求参数(如 a=b&c=d)的方式请求OSS,并且设置PassQueryString为true,那么如果规则配置的是302跳转,这些请求参数会被添加到跳转的Location头部中。例如,Location变为: 有效值:true、false(默认)。 |
Protocol | String | 否 | 否 | 协议。 | 当执行跳转操作时,如果RedirectType被设置为External或AliCDN,具体的协议遵循以下规则: 如果需要访问的文件是“test”,并且希望用户被重定向到“ 这里的“Protocol”参数值可选为:"http" 或 "https",用来指示跳转链接应该使用的网络协议。在上述例子中,选择的是"https",意味着通过安全的HTTPS协议进行跳转。如果选择"http",则Location头部会相应地变为" |
ReplaceKeyWith | String | 否 | 否 | 请求中对象的名称。 | 使用Redirect规则时,请求中的对象名称将被ReplaceKeyWith指定的值替换,这使得设置变量成为可能。目前支持的变量是${key},它代表请求中对象的名称。 假设要访问一个测试对象,如果将ReplaceKeyWith设置为prefix/{key},那么实际上就是在访问时,对象的路径会被重写为包含前缀“prefix/”。所以,当请求的对象是“test”时,Location头部(即访问的URL)会指向" |
ReplaceKeyPrefixWith | String | 否 | 否 | 重定向规则。 | 如果设置条件为KeyPrefixEquals针对"ABC/",并且ReplaceKeyPrefixWith针对"def/",那么为了访问名为"ABC/test.txt"的对象,根据您的描述,重定向规则将会把对象的前缀"ABC"替换为"def"。 因此,原本的Object路径是"ABC/test.txt",经过重定向规则处理后,将会变为"def/test.txt"。所以,根据这个假设情景,用户尝试访问" 请注意,这个解释基于您提供的信息和典型的云存储服务中URL重定向规则的工作方式。实际行为可能还需要参考具体实施该重定向策略的系统或服务的文档。 |
MirrorHeaders语法
"MirrorHeaders": {
"PassAll": Boolean,
"Pass": List,
"Sets": List,
"Remove": List
}
MirrorHeaders属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
PassAll | Boolean | 否 | 否 | 是否透传除以下头部之外的其他头部到源站。 | 此设置仅在RedirectType配置为Mirror时生效。
默认值:false |
Pass | List | 否 | 否 | 将指定的头部信息传递给源。 | 此操作仅在将RedirectType设置为镜像(Mirror)时有效。 每个头部的长度最多为1,024字节,并且只能包含字符集0-9、a-z、A-Z和破折号(-)。 此字段最多可以指定10个头部信息。 |
Remove | List | 否 | 否 | 禁用指定头部向源的传递。 | 这仅在将RedirectType设置为Mirror时有效。 每个头部的长度最多为1,024字节,并且字符集包括0-9、a-z、A-Z和破折号(-)。 此字段最多可以指定10个。 |
Sets | List | 否 | 否 | 设置一个头部到源服务器,当请求被返回给源服务器时,该头部将被设置,无论指定的头部是否包含在请求中。 | 此功能仅在将RedirectType设置为Mirror时生效。 此容器最多可以为10个组指定此设置。更多信息,请参考Sets属性。 |
Sets语法
"Sets": [
{
"Value": String,
"Key": String
}
]
Sets属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Key | String | 是 | 否 | 将Header键的大小限制为最多1024字节,且必须与Pass使用的字符集相同。 | 此设置仅在RedirectType被设为Mirror时生效。 |
Value | String | 是 | 否 | 将标头的值设置为最大1024字节,不包括\r\n。 | 此设置仅在RedirectType被设置为镜像(Mirror)时有效。 |
ErrorDocument语法
"ErrorDocument": {
"HttpStatus": String,
"Key": String
}
ErrorDocument属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Key | String | 是 | 否 | 默认的错误页面。 | 当指定了一个错误页面时,如果访问的对象不存在,将会返回这个错误页面。 |
HttpStatus | String | 否 | 否 | 错误页面的HTTP状态码。 | 有效值:
|
返回值
Fn::GetAtt
无
示例
- 本页导读 (1)
- 语法
- 属性
- WebsiteConfiguration语法
- WebsiteConfiguration属性
- IndexDocument语法
- IndexDocument属性
- RoutingRules语法
- RoutingRules属性
- Condition语法
- Condition属性
- IncludeHeaders语法
- IncludeHeaders属性
- Redirect语法
- Redirect属性
- MirrorHeaders语法
- MirrorHeaders属性
- Sets语法
- Sets属性
- ErrorDocument语法
- ErrorDocument属性
- 返回值
- 示例