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,
"RedundancyType": String,
"VersioningConfiguration": Map,
"ResourceGroupId": String,
"EnableOssHdfsService": Boolean
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
BucketName | String | 是 | 否 | 存储空间名称。 | 长度为3~63个字符。必须以小写英文字母或数字开头和结尾,可包含小写英文字母、数字和短划线(-)。 说明 此名称要求全局唯一,可以通过使用AssociationProperty中的AutoCompleteInput自动生成随机字符串。更多信息,请参见如何控制随机字符串的长度?。 |
AccessControl | String | 否 | 是 | 访问权限。 | 取值:
|
CORSConfiguration | Map | 否 | 否 | 跨域访问配置。 | 更多信息,请参见CORSConfiguration属性。 |
DeletionForce | Boolean | 否 | 是 | 是否强制删除OSS中的文件。 | 取值:
|
EnableOssHdfsService | Boolean | 否 | 是 | 是否开启OSS-HDFS服务。 | 取值:
|
LifecycleConfiguration | Map | 否 | 是 | 文件生命周期配置。 | 更多信息,请参见LifecycleConfiguration属性。 |
LoggingConfiguration | Map | 否 | 否 | 日志存储配置。 | 更多信息,请参见LoggingConfiguration属性。 |
Policy | Map | 否 | 是 | 存储空间策略。 | 更多信息,请参见Bucket Policy常见示例。 |
RedundancyType | String | 否 | 否 | Bucket的数据容灾类型。 | 取值:
|
RefererConfiguration | Map | 否 | 是 | 防盗链配置。 | 更多信息,请参见RefererConfiguration属性。 |
ResourceGroupId | String | 否 | 否 | 资源组ID。 | 无 |
ServerSideEncryptionConfiguration | Map | 否 | 是 | 服务端加密规则配置。 | 更多信息,请参见ServerSideEncryptionConfiguration属性。 |
StorageClass | String | 否 | 否 | 存储空间类型。 | 取值:
|
Tags | Map | 否 | 是 | 存储空间标签。Key-Value形式的键值对。 | 最多设置20个标签。 Key长度为1~64个字符,不能以 Value长度为0~128个字符,必须为UTF-8编码。 |
VersioningConfiguration | Map | 否 | 是 | 保存版本控制状态的容器。 | 更多信息,请参见VersioningConfiguration属性。 |
WebsiteConfiguration | Map | 否 | 否 | 静态托管页配置。 | 更多信息,请参见WebsiteConfiguration属性。 |
CORSConfiguration语法
"CORSConfiguration": {
"CORSRule": List
}
CORSConfiguration属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
CORSRule | List | 否 | 否 | 跨域访问规则。 | 更多信息,请参见CORSRule属性。 |
CORSRule语法
"CORSRule": [
{
"MaxAgeSeconds": Number,
"AllowedMethod": List,
"ExposeHeader": List,
"AllowedOrigin": List,
"AllowedHeader": List
}
]
CORSRule属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
AllowedHeader | List | 否 | 否 | 允许的跨域请求Header。 | 取值:
|
AllowedMethod | List | 否 | 否 | 允许的跨域请求的方法。 | 取值:
|
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属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Prefix | String | 是 | 否 | 规则所适用的前缀。 | 只有匹配前缀的对象才可能被该规则所影响。 |
AbortMultipartUpload | Map | 否 | 否 | 未完成分片上传的过期属性。 | 更多信息,请参见AbortMultipartUpload属性。 |
Expiration | Map | 否 | 否 | 对象规则的过期属性。 | 更多信息,请参见Expiration属性。 |
ID | String | 否 | 否 | 规则的唯一ID。 | 最长为255字符。当没有指定ID或者ID为空时,OSS会自动生成一个唯一值。 |
Status | String | 否 | 是 | 启用或停用规则。 | 取值:
|
Expiration语法
"Expiration":{
"Days": Number,
"CreatedBeforeDate": String,
"Date": String
}
Expiration属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
CreatedBeforeDate | String | 否 | 否 | 指定一个日期,OSS会对最后更新日期早于该日期的数据执行规则。 | 日期必须服从ISO8601的格式,且要求是UTC的零点。例如: |
Days | Number | 否 | 否 | 对象最后修改后,规则将在多少天后生效。 | 以文件最后修改时间为起点开始计算,超过设定天数时即执行规则,则将对象删除。如果设置时间为30天,则最后修改日期为2016年01月01日的对象会在2016年01月31日被后端程序删除。 |
AbortMultipartUpload语法
"AbortMultipartUpload": {
"CreatedBeforeDate": String,
"Days": Number
}
AbortMultipartUpload属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
CreatedBeforeDate | String | 否 | 否 | 规则在何时之前生效。 | 日期为ISO8601的格式,并且值为UTC的零点。例如: |
Days | Number | 否 | 否 | 对象最后修改后,规则会在多少天后生效。 | 以文件最后修改时间为起点开始计算,超过设定天数时即执行规则,则将对象删除。如果设置时间为30天,则最后修改日期为2016年01月01日的对象会在2016年01月31日被后端程序删除。 |
LoggingConfiguration语法
"LoggingConfiguration": {
"TargetBucket": String,
"TargetPrefix": String
}
LoggingConfiguration属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
TargetBucket | String | 否 | 否 | 存放访问日志的存储空间。 | 无 |
TargetPrefix | String | 否 | 否 | 最终被保存的访问日志文件前缀。 | 无 |
WebsiteConfiguration语法
"WebsiteConfiguration":{
"IndexDocument": String,
"ErrorDocument": String
}
WebsiteConfiguration属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
ErrorDocument | String | 否 | 否 | 托管的静态错误页。 | 无 |
IndexDocument | String | 否 | 否 | 托管的静态首页。 | 无 |
RefererConfiguration语法
"RefererConfiguration":{
"AllowEmptyReferer": String,
"RefererList": List
}
RefererConfiguration属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
AllowEmptyReferer | Boolean | 否 | 否 | 是否允许referer字段为空的请求访问。 | 取值:
|
RefererList | List | 否 | 否 | 允许referer字段的白名单。 | 无 |
ServerSideEncryptionConfiguration语法
"ServerSideEncryptionConfiguration":{
"KMSMasterKeyID": String,
"SSEAlgorithm": String
}
ServerSideEncryptionConfiguration属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
SSEAlgorithm | String | 是 | 否 | 服务端默认加密方式。 | 取值:
|
KMSMasterKeyID | String | 否 | 否 | 密钥ID。 | 只有当SSEAlgorithm值为KMS,且使用指定的密钥加密时,才需指定密钥ID。 |
VersioningConfiguration语法
"VersioningConfiguration":{
"Status": String
}
VersioningConfiguration属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Status | String | 是 | 否 | 版本控制状态。 | 取值:
|
返回值
Fn::GetAtt
Name:存储空间名称,全局唯一。
DomainName:通过公网访问存储空间的域名。
InternalDomainName:通过内网访问存储空间的域名。
示例
YAML
格式
ROSTemplateFormatVersion: '2015-09-01'
Description: Creates a simple oss bucket
Parameters:
BucketName:
AssociationProperty: AutoCompleteInput
AssociationPropertyMetadata:
Length: 5
Prefix: simple-oss-bucket
CharacterClasses:
- Class: lowercase
min: 1
Type: String
Label:
en: Bucket Name
Outputs:
BucketDomainName:
Value:
Fn::GetAtt:
- MyBucket
- DomainName
Resources:
MyBucket:
Type: ALIYUN::OSS::Bucket
Properties:
AccessControl: private
BucketName:
Ref: BucketName
Metadata: {}
JSON
格式
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Creates a simple oss bucket",
"Parameters": {
"BucketName": {
"Type": "String",
"Label": {
"en": "Bucket Name"
},
"AssociationProperty": "AutoCompleteInput",
"AssociationPropertyMetadata": {
"Length": 5 ,
"Prefix": "simple-oss-bucket",
"CharacterClasses": [
{
"Class": "lowercase",
"min": 1
}
]
}
}
},
"Metadata": {
},
"Resources": {
"MyBucket": {
"Type": "ALIYUN::OSS::Bucket",
"Properties": {
"AccessControl": "private",
"BucketName": {
"Ref": "BucketName"
}
}
}
},
"Outputs": {
"BucketDomainName": {
"Value": {
"Fn::GetAtt": [
"MyBucket",
"DomainName"
]
}
}
}
}