ALIYUN::OSS::Bucket类型用于创建OSS存储空间。

语法

{
  "Type": "ALIYUN::OSS::Bucket",
  "Properties": {
    "AccessControl": String,
    "RefererConfiguration": Map,
    "ServerSideEncryptionConfiguration": Map,
    "CORSConfiguration": Map,
    "Tags": Map,
    "LoggingConfiguration": Map,
    "LifecycleConfiguration": Map,
    "StorageClass": String,
    "DeletionForce": Boolean,
    "WebsiteConfiguration": Map,
    "Policy": Map,
    "BucketName": String
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
BucketName String 存储空间名称。
  • 长度为3~63 个字符。
  • 必须以小写字母或数字开头和结尾,可以包含小写字母、数字和连字符(-)。
AccessControl String 访问权限。 取值范围:private、public-read、public-read-write。
CORSConfiguration Map 跨域访问配置。 无。
LifecycleConfiguration Map 文件生命周期配置。 无。
LoggingConfiguration Map 日志存储配置。 无。
RefererConfiguration Map 防盗链配置。 无。
DeletionForce Boolean 是否强制删除OSS中的文件。 取值范围:
  • true
  • false

默认值:false。

WebsiteConfiguration Map 静态托管页配置。 无。
ServerSideEncryptionConfiguration Map 服务端加密规则配置。 无。
Tags Map 存储空间标签。 Key-Value形式的键值对。
  • 最多设置20个标签。
  • Key长度为1~64个字节,不能以http://https://Aliyun开头。
  • Value长度为0~128个字节,必须为UTF-8编码。
StorageClass String 存储空间类型。 取值范围:Standard、IA、Archive。
Policy Map 存储空间策略。 无。

CORSConfiguration语法

"CORSConfiguration": {
  "CORSRule": [
    {
      "AllowedHeader": String,
      "AllowedMethod": List,
      "AllowedOrigin": List,
      "ExposeHeader": List,
      "MaxAgeSeconds": Integer
    }
  ]
}

CORSConfiguration属性

属性名称 类型 必须 允许更新 描述 约束
CORSRule List 跨域访问规则。 无。
AllowedHeader String 允许的跨域请求Header。 取值:*、Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。
AllowedMethod List 允许的跨域请求的方法。 取值:*、GET、PUT、POST、DELETE、HEAD。
AllowedOrigin List 允许的跨域请求的来源。 无。
ExposeHeader List 允许用户从应用程序中访问的响应头 。 不允许使用星号通配符(*)。
MaxAgeSeconds Integer 浏览器对特定资源的OPTIONS请求返回结果的缓存时间。 无。

LifecycleConfiguration语法

"LifecycleConfiguration": {
  "Rule": [
    {
      "ID": String,
      "Prefix": String,
      "Status": String,
      "Expiration": Map,
      "AbortMultipartUpload": Map
    }
  ]
}

LifecycleConfiguration属性

属性名称 类型 必须 允许更新 描述 约束
Rule List 生命周期规则。 无。
ID String 规则的唯一 ID。 最长为255字节。当没有指定ID或者ID为空时,OSS会自动生成一个唯一值。
Prefix String 规则所适用的前缀。 只有匹配前缀的对象才可能被该规则所影响。
Status String 启用或停用规则。 取值: Enable、Disable。
Expiration Map 对象规则的过期属性。 无。
AbortMultipartUpload Map 未完成分片上传的过期属性。 无。

Expiration语法

"Expiration":{
  "Days": Number,
  "CreatedBeforeDate": String
}

Expiration属性

属性名称 类型 必须 允许更新 描述 约束
Days Number 对象最后修改后,规则会在多少天后生效。 以文件最后修改时间为起始计算,超过设定天数时即执行规则,则将对象删除。如果设置时间为30天,则最后修改日期为2016年1月1号的对象会在2016年1月31号被后端程序删除。
CreatedBeforeDate String 规则在何时之前生效。 日期为ISO8601的格式,并且值为UTC的零点。例如:2002-10-11T00:00:00.000Z。

AbortMultipartUpload语法

"AbortMultipartUpload": {
  "CreatedBeforeDate": String,
  "Days": Number
}

AbortMultipartUpload属性

属性名称 类型 必须 允许更新 描述 约束
Days Number 对象最后修改后,规则会在多少天后生效。 以文件最后修改时间为起始计算,超过设定天数时即执行规则,则将对象删除。如果设置时间为30天,则最后修改日期为2016年1月1号的对象会在2016年1月31号被后端程序删除。
CreatedBeforeDate String 规则在何时之前生效。 日期为ISO8601的格式,并且值为UTC的零点。例如:2002-10-11T00:00:00.000Z。

LoggingConfiguration语法

"LoggingConfiguration": {
  "TargetBucket": String,
  "TargetPrefix": String
}

LoggingConfiguration属性

属性名称 类型 必须 允许更新 描述 约束
TargetBucket String 存放访问日志的存储空间。 无。
TargetPrefix String 最终被保存的访问日志文件前缀。 无。

WebsiteConfiguration语法

"WebsiteConfiguration":{
  "IndexDocument": String,
  "ErrorDocument": String
}

WebsiteConfiguration属性

属性名称 类型 必须 允许更新 描述 约束
IndexDocument String 托管的静态首页。 无。
ErrorDocument String 托管的静态错误页。 无。

RefererConfiguration语法

"RefererConfiguration":{
  "AllowEmptyReferer": String,
  "RefererList": List
}

RefererConfiguration属性

属性名称 类型 必须 允许更新 描述 约束
AllowEmptyReferer String 是否允许referer字段为空的请求访问。 无。
RefererList List 允许referer字段的白名单。 无。

ServerSideEncryptionConfiguration语法

"ServerSideEncryptionConfiguration":{
  "KMSMasterKeyID": String,
  "SSEAlgorithm": String
}

属性

属性名称 类型 必须 允许更新 描述 约束
KMSMasterKeyID String 密钥ID。 只有当SSEAlgorithm值为KMS,且使用指定的密钥加密时,才需输入密钥ID。
SSEAlgorithm String 服务端默认加密方式。 取值:KMS、AES256。

返回值

Fn::GetAtt

  • Name:存储空间名称,全局唯一。
  • DomainName:通过公网访问存储空间的域名。
  • InternalDomainName:通过内网访问存储空间的域名。

示例

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "Bucket": {
      "Type": "ALIYUN::OSS::Bucket",
      "Properties": {
        "AccessControl": "private",
        "BucketName": "rostest",
        "WebsiteConfiguration":{
            "IndexDocument": "index1.html",
            "ErrorDocument": "error404.html"
        },
        "LoggingConfiguration": {
            "TargetBucket": "cos-mirror",
            "TargetPrefix": "test404"
        },
        "CORSConfiguration": {
            "CORSRule": [{
                "AllowedHeader": ["*"],
                "AllowedMethod": ["GET", "PUT"],
                "AllowedOrigin": ["*"],
                "ExposeHeader": ["Date"],
                "MaxAgeSeconds": 3600
            }]
        },
        "LifecycleConfiguration": {
            "Rule": [{
                "ID": "deleteRule",
                "Prefix": "test/",
                "Status": "Enabled",
                "Expiration":{
                    "Days": 2
                },
                "AbortMultipartUpload":{
                    "CreatedBeforeDate": "2014-10-11T00:00:00.000Z"
                }
            }]
        },
        "RefererConfiguration": {
            "AllowEmptyReferer": true,
            "RefererList": ["http://www.aliyun.com", "https://www.?.aliyuncs.com"]
        }
      }
    }
  },
  "Outputs": {
    "Name": {
         "Value": {"Fn::GetAtt": ["Bucket","Name"]}
    },
    "DomainName": {
         "Value": {"Fn::GetAtt": ["Bucket","DomainName"]}
    }
  }
}