create-bucket-metadata-configuration命令用于为Bucket创建元数据管理(Metadata)配置,包含变更日志表(Journal Table)以及可选的动态清单表(Live Inventory Table)。
注意事项
元数据管理(Metadata)当前为邀测功能,尚未对所有用户开放,且仅在已开放Table Bucket的地域提供。如需使用,请联系技术支持申请。此外,您也可以通过OSS控制台开启、修改或关闭元数据管理功能。
阿里云账号默认拥有为Bucket创建元数据配置的权限。如果您需要通过RAM用户或者STS的方式进行操作,您必须拥有oss:CreateBucketMetadataTableConfiguration权限。具体操作,请参见为RAM用户授予自定义的权限策略。
命令格式
ossutil api create-bucket-metadata-configuration --bucket examplebucket --metadata-configuration file://metadata-configuration.xml
|
参数 |
类型 |
说明 |
|
--bucket |
string |
目标Bucket的名称。 |
|
--metadata-configuration |
string |
元数据表配置容器,支持XML和JSON格式。当选项值包含 |
--metadata-configuration
--metadata-configuration配置选项支持XML和JSON语法,当选项值包含file://前缀时,表示从文件中读取配置。示例配置文件metadata-configuration.xml的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<MetadataConfiguration>
<JournalTableConfiguration>
<RecordExpiration>
<Expiration>ENABLED</Expiration>
<Days>7</Days>
</RecordExpiration>
</JournalTableConfiguration>
<InventoryTableConfiguration>
<ConfigurationState>ENABLED</ConfigurationState>
<EncryptionConfiguration>
<SseAlgorithm>AES256</SseAlgorithm>
</EncryptionConfiguration>
</InventoryTableConfiguration>
</MetadataConfiguration>
等效的JSON语法如下:
{
"JournalTableConfiguration": {
"RecordExpiration": {
"Expiration": "ENABLED",
"Days": 7
}
},
"InventoryTableConfiguration": {
"ConfigurationState": "ENABLED",
"EncryptionConfiguration": {
"SseAlgorithm": "AES256"
}
}
}
|
参数 |
类型 |
是否必填 |
说明 |
|
JournalTableConfiguration |
Container |
是 |
变更日志表配置。 |
|
JournalTableConfiguration.RecordExpiration |
Container |
是 |
变更日志表记录的过期配置。 |
|
JournalTableConfiguration.RecordExpiration.Expiration |
String |
是 |
记录过期开关。取值:ENABLED、DISABLED。 |
|
JournalTableConfiguration.RecordExpiration.Days |
Integer |
条件必填 |
记录过期天数。Expiration 为 ENABLED 时必填,取值为正整数。 |
|
JournalTableConfiguration.EncryptionConfiguration |
Container |
否 |
变更日志表加密配置。 |
|
JournalTableConfiguration.EncryptionConfiguration.SseAlgorithm |
String |
条件必填 |
加密算法。传入 EncryptionConfiguration 时必填。 |
|
JournalTableConfiguration.EncryptionConfiguration.KmsKeyArn |
String |
条件必填 |
KMS 密钥 ARN。SseAlgorithm 为 SSE-KMS 时必填。 |
|
InventoryTableConfiguration |
Container |
否 |
动态清单表配置,可在创建时一并启用。 |
|
InventoryTableConfiguration.ConfigurationState |
String |
条件必填 |
传入 InventoryTableConfiguration 时必填。取值:ENABLED、DISABLED。 |
|
InventoryTableConfiguration.EncryptionConfiguration |
Container |
否 |
动态清单表加密配置。 |
|
InventoryTableConfiguration.EncryptionConfiguration.SseAlgorithm |
String |
条件必填 |
加密算法。传入 EncryptionConfiguration 时必填。 |
本命令需要ossutil 2.4.1及以上版本。更低版本请通过泛化命令invoke-operation调用对应接口。
关于支持的全局命令行选项,请参见支持的全局命令行选项。
使用示例
为Bucket examplebucket 创建元数据配置:启用变更日志表并将记录过期时间设置为7天,同时启用动态清单表并使用 AES256 加密。配置文件 metadata-configuration.xml 的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<MetadataConfiguration>
<JournalTableConfiguration>
<RecordExpiration>
<Expiration>ENABLED</Expiration>
<Days>7</Days>
</RecordExpiration>
</JournalTableConfiguration>
<InventoryTableConfiguration>
<ConfigurationState>ENABLED</ConfigurationState>
<EncryptionConfiguration>
<SseAlgorithm>AES256</SseAlgorithm>
</EncryptionConfiguration>
</InventoryTableConfiguration>
</MetadataConfiguration>
也可以改用JSON格式的配置文件 metadata-configuration.json,内容如下:
{
"JournalTableConfiguration": {
"RecordExpiration": {
"Expiration": "ENABLED",
"Days": 7
}
},
"InventoryTableConfiguration": {
"ConfigurationState": "ENABLED",
"EncryptionConfiguration": {
"SseAlgorithm": "AES256"
}
}
}
命令示例如下:
ossutil api create-bucket-metadata-configuration --bucket examplebucket --metadata-configuration file://metadata-configuration.xmlossutil api create-bucket-metadata-configuration --bucket examplebucket --metadata-configuration file://metadata-configuration.json