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 跨域访问配置。 更多信息,请参见CORSConfiguration属性
LifecycleConfiguration Map 文件生命周期配置。 更多信息,请参见LifecycleConfiguration属性
LoggingConfiguration Map 日志存储配置。 更多信息,请参见LoggingConfiguration属性
RefererConfiguration Map 防盗链配置。 更多信息,请参见RefererConfiguration属性
DeletionForce Boolean 是否强制删除OSS中的文件。 取值:
  • true:强制删除。
  • false(默认值):不强制删除。
WebsiteConfiguration Map 静态托管页配置。 更多信息,请参见WebsiteConfiguration属性
ServerSideEncryptionConfiguration Map 服务端加密规则配置。 更多信息,请参见ServerSideEncryptionConfiguration属性
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": List
}

CORSConfiguration属性

属性名称 类型 必须 允许更新 描述 约束
CORSRule List 跨域访问规则。 更多信息,请参见CORSRule属性

CORSRule语法

"CORSRule": [
  {
    "MaxAgeSeconds": Number,
    "AllowedMethod": List,
    "ExposeHeader": List,
    "AllowedOrigin": List,
    "AllowedHeader": List
  }
]

CORSRule属性

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

LifecycleConfiguration语法

"LifecycleConfiguration": {
  "Rule": List
}

LifecycleConfiguration属性

属性名称 类型 必须 允许更新 描述 约束
Rule List 生命周期规则。 更多信息,请参见Rule属性

Rule语法

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

Rule属性

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

Expiration语法

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

Expiration属性

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

AbortMultipartUpload语法

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

AbortMultipartUpload属性

属性名称 类型 必须 允许更新 描述 约束
Days Number 对象最后修改后,规则会在多少天后生效。 以文件最后修改时间为起点开始计算,超过设定天数时即执行规则,则将对象删除。如果设置时间为30天,则最后修改日期为2016年01月01日的对象会在2016年01月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 Boolean 是否允许referer字段为空的请求访问。 取值:
  • true(默认值):允许r。
  • false:不允许。
RefererList List 允许referer字段的白名单。

ServerSideEncryptionConfiguration语法

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

ServerSideEncryptionConfiguration属性

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

返回值

Fn::GetAtt

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

示例

  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Description": "Creates a simple oss bucket",
      "Parameters": {
        "AccessControl": {
          "Type": "String",
          "Label": {
            "zh-cn": "读写权限",
            "en": "Access Control"
          },
          "Description": {
            "en": "Set the access permission of the bucket",
            "zh-cn": "设置Bucket读写权限"
          },
          "AllowedValues": [
            "private",
            "public-read",
            "public-read-write"
          ],
          "Default": "private"
        },
        "BucketName": {
          "Type": "String",
          "Label": {
            "zh-cn": "存储空间名称",
            "en": "Bucket Name"
          },
          "Description": {
            "en": "Bucket name",
            "zh-cn": "Bucket名称"
          },
          "ConstraintDescription": {
            "en": "Must begin and be end with a lowercase letter or number. The length is within [3, 63]",
            "zh-cn": "必须以小写英文字母或数字开头和结尾。长度为3~63个字符。"
          },
          "AllowedPattern": "^[a-z0-9]{1}[a-z0-9\\-]{1,62}[a-z0-9]{1}$",
          "Default": "simple-oss-bucket"
        }
      },
      "Metadata": {
        "ALIYUN::ROS::Interface": {
          "ParameterGroups": [
            {
              "Parameters": [
                "BucketName",
                "AccessControl"
              ],
              "Label": {
                "default": "OSS"
              }
            }
          ],
          "TemplateTags": [
            "acs:example:存储:创建一个OSSBucket"
          ]
        }
      },
      "Resources": {
        "MyBucket": {
          "Type": "ALIYUN::OSS::Bucket",
          "Properties": {
            "AccessControl": {
              "Ref": "AccessControl"
            },
            "BucketName": {
              "Ref": "BucketName"
            }
          }
        }
      },
      "Outputs": {
        "BucketDomainName": {
          "Value": {
            "Fn::GetAtt": [
              "MyBucket",
              "DomainName"
            ]
          }
        }
      }
    }
  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Description: Creates a simple oss bucket
    Parameters:
      AccessControl:
        Type: String
        Label:
          zh-cn: 读写权限
          en: Access Control
        Description:
          en: Set the access permission of the bucket
          zh-cn: 设置Bucket读写权限
        AllowedValues:
          - private
          - public-read
          - public-read-write
        Default: private
      BucketName:
        Type: String
        Label:
          zh-cn: 存储空间名称
          en: Bucket Name
        Description:
          en: Bucket name
          zh-cn: Bucket名称
        ConstraintDescription:
          en: Must begin and be end with a lowercase letter or number. The length is within [3, 63]
          zh-cn: 必须以小写英文字母或数字开头和结尾。长度为3~63个字符。
        AllowedPattern: ^[a-z0-9]{1}[a-z0-9\-]{1,62}[a-z0-9]{1}$
        Default: simple-oss-bucket
    Metadata:
      ALIYUN::ROS::Interface:
        ParameterGroups:
          - Parameters:
              - BucketName
              - AccessControl
            Label:
              default: OSS
        TemplateTags:
          - acs:example:存储:创建一个OSSBucket
    Resources:
      MyBucket:
        Type: ALIYUN::OSS::Bucket
        Properties:
          AccessControl:
            Ref: AccessControl
          BucketName:
            Ref: BucketName
    Outputs:
      BucketDomainName:
        Value:
          Fn::GetAtt:
            - MyBucket
            - DomainName

更多示例,请参见:JSON示例YAML示例