mc replicate update
在 RELEASE.2022-12-24T15-21-38Z 版本发生变更: mc replicate update
命令替代了 mc admin bucket remote update
命令。
在 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
方括号
[]
表示可选参数。参数在同一行表示它们是相互依赖的。
使用管道
|
运算符分隔的参数是相互排斥的。
在终端/壳中运行命令之前,将示例复制到文本编辑器中并按需进行修改。
参数
- 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
for bytesK
for kilobytesG
for gigabytesT
for terabytesKi
for kibibytesGi
for gibibytesTi
for tebibytes
例如,要将带宽速率限制为不超过 1 GiB/s,请使用以下命令:
--limit-upload 1Gi
如果未指定,MinIO 不会限制带宽速率。
- --limit-download
- Optional
将下载速率限制在不超过指定的速率,单位可以是 KiB/s(千字节每秒)、MiB/s(兆字节每秒)或 GiB/s(吉字节每秒)。 有效单位包括:
B
for bytesK
for kilobytesG
for gigabytesT
for terabytesKi
for kibibytesGi
for gibibytesTi
for tebibytes
例如,如果要将下载速率限制在不超过1 GiB/s,可以使用以下命令:
--limit-download 1G
如果未指定,MinIO 将使用不限下载速率。
- --limit-upload
- :optional:
将上传速率限制在不超过指定的速率,单位可以是 KiB/s(千字节每秒)、MiB/s(兆字节每秒)或 GiB/s(吉字节每秒)。 有效单位包括:
B
for bytesK
for kilobytesG
for gigabytesT
for terabytesKi
for kibibytesGi
for gibibytesTi
for tebibytes
例如,要将上传速率限制为不超过1 GiB/s,可以使用以下方法:
--limit-upload 1G
如果未指定,MinIO将使用无限上传速率。
- --path
- Optional
为远程存储桶启用路径式查找支持。
有效值包括:
on
- 使用路径查找来查找远程桶off
- 使用资源定位器风格(如域名或IP地址)查找远程桶auto
- 请MinIO确定使用哪种查找方式来找到远程桶。
当未定义时,MinIO 使用默认值
auto
。
- --proxy
- Optional
在定义桶之间的活跃-活跃复制时,不要使用代理。
有效值包括:
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
基于别名的目标可能如下所示:
--remote-bucket minio-target/my-bucket
- --replicate
- Optional
指定以下值的逗号分隔列表以启用扩展复制功能:
delete
- 指示MinIO将:ref:DELETE operations <minio-object-delete> 复制到目标桶。delete-marker
- 指示MinIO将删除标记复制到目标桶。replica-metadata-sync
- 指示 MinIO 将复制的对象上仅包含元数据的变化同步回源。 此功能仅影响 two-way active-active 复制配置。
省略此值将指示MinIO停止将仅包含元数据的更改复制回源。
existing-objects
- 指示 MinIO 复制在配置或启用复制之前创建的对象。 MinIO 默认 不会 将现有的对象同步到远程目标。更多信息,请参见 现有对象的复制。
- --state
- Optional
启用或禁用复制规则。 请指定以下之一值:
enable
- 启用复制规则。disable
- 禁用复制规则。
在复制禁用期间创建的对象,在启用规则后并不会立即符合复制条件。 你必须显式启用现有对象的复制,通过将
existing-objects
包含在传递给mc replicate update --replicate
的复制特性列表中。更多信息,请参见 现有对象的复制。
- --storage-class
- Optional
指定应用于复制对象的 MinIO 存储类。
全局标记
此命令支持任何 全局标志。
示例
修改现有复制规则
使用 mc replicate update
修改现有的复制规则。
mc replicate update ALIAS/PATH \
--id ID \
[--FLAGS]
将
PATH
替换为规则存在的存储桶或存储桶前缀的路径。将
ID
替换为要修改的规则的唯一标识符。 使用mc replicate ls
命令来检索存储桶上的复制规则及其相应的标识符列表。
备注
修改复制配置规则不会影响已复制的对象。
例如,修改 --tags
过滤器不会导致不满足过滤器的已复制对象被移除。
更新现有复制规则的凭据
使用 mc replicate update
修改现有的复制规则。
mc replicate update ALIAS/PATH \
--id ID \
--remote-bucket https://user:secret@minio.mycloud.tld:9001/mybucket
禁用或启用现有复制规则
使用 mc replicate update
命令配合 --state
标志来禁用或启用一个复制规则。
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"
],
"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 配合使用时,功能和行为符合预期。
MinIO 不对其他 S3 兼容服务提供任何保证,因为它们的 S3 API 实现是 未知的,因此不受支持。尽管 mc 命令 可能 如文档中所 述工作,但任何此类使用都是您自己的风险。