mc replicate update
Changed in version RELEASE.2022-12-24T15-21-38Z: mc replicate update 替代了 mc admin bucket remote update 命令。
Changed in version RELEASE.2022-11-07T23-47-39Z: mc replicate update 替代了 mc replicate edit 命令。
语法
mc replicate update 命令用于修改现有的
存储桶复制规则。
mc [GLOBALFLAGS] replicate update FLAGS [FLAGS] ARGUMENTS [ARGUMENTS]
以下命令会修改 myminio MinIO 部署中 mydata
存储桶的一条现有复制规则:
mc replicate update --id "c76um9h4b0t1ijr36mug" \
--replicate "delete,delete-marker,existing-objects" \
myminio/mydata
新的复制配置会将所有版本化删除操作、删除标记创建以及现有对象 同步到远端 MinIO 部署。
命令语法如下:
mc [GLOBALFLAGS] replicate update \
--remote-bucket string \
[--bandwidth "string"] \
[--healthcheck-seconds integer] \
[--id "string"] \
[--limit-upload "string"] \
[--limit-download "string"] \
[--path "string"] \
[--priority int] \
[--proxy]
[--replicate "string"] \
[--state string]
[--storage-class "string"] \
[--sync string] \
[--tags "string"] \
ALIAS
方括号
[]表示可选参数。同一行中的参数彼此相互依赖。
使用管道符
|分隔的参数彼此互斥。
请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。
参数
- ALIAS
- Required
要修改复制规则的 MinIO 部署 alias 以及存储桶或存储桶前缀的完整路径。 例如:
mc replicate update --id "c75nrap4b0talo3ipthg" [FLAGS]
- --id
- Required
指定已配置复制规则的唯一 ID。 使用
mc replicate ls命令列出存储桶的复制规则。
- --bandwidth
- Optional
将带宽速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:
B表示 bytesK表示 kilobytesG表示 gigabytesT表示 terabytesKi表示 kibibytesGi表示 gibibytesTi表示 tebibytes
例如,要将带宽速率限制为不超过 1 GiB/s,可使用:
--limit-upload 1Gi
如果未指定,MinIO 不限制带宽速率。
- --limit-download
- Optional
将下载速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:
B表示 bytesK表示 kilobytesG表示 gigabytesT表示 terabytesKi表示 kibibytesGi表示 gibibytesTi表示 tebibytes
例如,要将下载速率限制为不超过 1 GiB/s,可使用:
--limit-download 1G
如果未指定,MinIO 使用不限速下载。
- --limit-upload
- Optional
将上传速率限制为不超过指定值,单位可为 KiB/s、MiB/s 或 GiB/s。 有效单位包括:
B表示 bytesK表示 kilobytesG表示 gigabytesT表示 terabytesKi表示 kibibytesGi表示 gibibytesTi表示 tebibytes
例如,要将上传速率限制为不超过 1 GiB/s,可使用:
--limit-upload 1G
如果未指定,MinIO 使用不限速上传。
- --path
- Optional
为远端存储桶启用 path-style 查找支持。
有效值包括:
on- 使用路径查找来定位远端存储桶off- 使用资源定位符样式(如域名或 IP 地址)查找来定位远端存储桶auto- 让 MinIO 自动识别用于定位远端存储桶的正确查找类型
未定义时,MinIO 使用
auto值。
- --proxy
- Optional
在存储桶之间定义 active-active 复制时,是否使用代理。
有效值包括:
enable- 在 active-active 复制中启用代理。disable- 在 active-active 复制中禁用代理。
默认情况下,MinIO 默认为
enable。
- --remote-bucket
- Optional
指定远端位置的凭据、目标部署和存储桶。 值可以是 alias 与存储桶,也可以是基于位置(IP 或 URL)或基于路径的形式。
例如,基于 URL 的目标可能如下:
--remote-bucket https://user:secret@myminio.cloudprovider.tld:9001/bucket
基于 alias 的目标可能如下:
--remote-bucket minio-target/my-bucket
- --replicate
- Optional
指定由逗号分隔的以下值列表,以启用扩展复制功能:
delete- 指示 MinIO 将 DELETE operations 复制到目标存储桶。delete-marker- 指示 MinIO 将删除标记复制到目标存储桶。replica-metadata-sync- 指示 MinIO 将已复制对象上仅元数据的变更同步回源端。 该功能仅影响 双向 active-active 复制配置。省略此值会使 MinIO 停止将仅元数据变更复制回源端。
existing-objects- 指示 MinIO 复制在配置或启用复制之前已创建的对象。 默认情况下,MinIO 不会 将现有对象同步到远端目标。更多信息参见 现有对象的复制。
- --state
- Optional
启用或禁用复制规则。 指定以下值之一:
"enable"- 启用复制规则。"disable"- 禁用复制规则。
在复制被禁用期间创建的对象,在重新启用规则后不会立即具备复制资格。 你必须在传给
mc replicate update --replicate的复制功能列表中包含"existing-objects",以显式启用现有对象复制。更多信息参见 现有对象的复制。
- --storage-class
- Optional
指定要应用到已复制对象上的 MinIO storage class。
全局标志
此命令支持 全局标志 中的任意选项。
示例
修改现有复制规则
使用 mc replicate update 修改现有复制规则。
mc replicate update ALIAS/PATH \
--id ID \
[--FLAGS]
将
PATH替换为该规则所在存储桶或存储桶前缀的路径。将
ID替换为要修改规则的唯一标识符。 使用mc replicate ls获取该存储桶上的复制规则列表及其对应标识符。
Note
修改复制配置规则不会影响已经复制的对象。
例如,修改 --tags 过滤器不会删除不满足过滤条件的已复制对象。
更新现有复制规则的凭据
使用 mc replicate update 修改现有复制规则。
mc replicate update ALIAS/PATH \
--id ID \
--remote-bucket https://user:secret@minio.mycloud.tld:9001/mybucket
禁用或启用现有复制规则
使用带 --state 标志的 mc replicate update 来禁用或启用复制规则。
mc replicate update ALIAS/PATH \
--id ID \
--state "disable"|"enable"
行为
所需权限
MinIO 强烈建议创建专门用于支持存储桶复制操作的用户。
有关向 MinIO 部署添加用户和策略的更完整文档,请参见 mc admin user 和 mc admin policy。
以下策略提供在部署上配置并启用复制所需的权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"admin:SetBucketTarget",
"admin:GetBucketTarget",
"admin:ListBatchJobs",
"admin:DescribeBatchJob",
"admin:StartBatchJob",
"admin:CancelBatchJob"
],
"Effect": "Allow",
"Sid": "EnableRemoteBucketConfiguration"
},
{
"Effect": "Allow",
"Action": [
"s3:GetReplicationConfiguration",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:GetBucketLocation",
"s3:GetBucketVersioning",
"s3:GetObjectRetention",
"s3:GetObjectLegalHold",
"s3:PutReplicationConfiguration"
],
"Resource": [
"arn:aws:s3:::*"
],
"Sid": "EnableReplicationRuleConfiguration"
}
]
}
"EnableRemoteBucketConfiguration"语句授予创建远端目标以支持复制的权限。"EnableReplicationRuleConfiguration"语句授予在存储桶上创建复制规则的权限。"arn:aws:s3:::*资源将复制权限应用到源部署上的*任意*存储桶。你可以按需将用户策略限制到特定存储桶。
使用 mc admin policy create 将该策略添加到每个作为复制源的部署。使用 mc admin user add
在部署上创建用户,并使用 mc admin policy attach 将该策略关联到该新用户。
以下策略提供将复制数据同步*到*该部署所需的权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetReplicationConfiguration",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:GetBucketLocation",
"s3:GetBucketVersioning",
"s3:GetBucketObjectLockConfiguration",
"s3:GetEncryptionConfiguration"
],
"Resource": [
"arn:aws:s3:::*"
],
"Sid": "EnableReplicationOnBucket"
},
{
"Effect": "Allow",
"Action": [
"s3:GetReplicationConfiguration",
"s3:ReplicateTags",
"s3:AbortMultipartUpload",
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetObjectVersionTagging",
"s3:PutObject",
"s3:PutObjectRetention",
"s3:PutBucketObjectLockConfiguration",
"s3:PutObjectLegalHold",
"s3:DeleteObject",
"s3:ReplicateObject",
"s3:ReplicateDelete"
],
"Resource": [
"arn:aws:s3:::*"
],
"Sid": "EnableReplicatingDataIntoBucket"
}
]
}
"EnableReplicationOnBucket"语句授予远端目标检索存储桶级配置的权限,以支持对 MinIO 部署中*所有*存储桶执行复制操作。 若要将策略限制到特定存储桶,可在Resource数组中以"arn:aws:s3:::bucketName"形式指定这些存储桶。"EnableReplicatingDataIntoBucket"语句授予远端目标将数据同步到 MinIO 部署中*任意*存储桶的权限。 若要将策略限制到特定存储桶,可在Resource数组中以"arn:aws:s3:::bucketName/*"形式指定这些存储桶。
使用 mc admin policy create 将该策略添加到每个作为复制目标的部署。使用 mc admin user add
在部署上创建用户,并使用 mc admin policy attach 将该策略关联到该新用户。
S3 兼容性
mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。
对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。