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
- RequiredMinIO 部署的别名( alias )以及要修改复制规则的存储桶或存储桶前缀的完整路径。 例如: mc replicate update --id "c75nrap4b0talo3ipthg" [FLAGS] 
- --id
- Required指定配置的复制规则的唯一 ID。 使用 mc replicate ls命令来列出一个存储桶的复制规则。
- --bandwidth
- Optional将带宽限制设置为不超过指定的速率,单位可以是 KiB/s(千字节每秒)、MiB/s(兆字节每秒)或 GiB/s(吉字节每秒)。 有效单位包括: - Bfor bytes
- Kfor kilobytes
- Gfor gigabytes
- Tfor terabytes
- Kifor kibibytes
- Gifor gibibytes
- Tifor tebibytes
 例如,要将带宽速率限制为不超过 1 GiB/s,请使用以下命令: --limit-upload 1Gi 如果未指定,MinIO 不会限制带宽速率。 
- --limit-download
- Optional将下载速率限制在不超过指定的速率,单位可以是 KiB/s(千字节每秒)、MiB/s(兆字节每秒)或 GiB/s(吉字节每秒)。 有效单位包括: - Bfor bytes
- Kfor kilobytes
- Gfor gigabytes
- Tfor terabytes
- Kifor kibibytes
- Gifor gibibytes
- Tifor tebibytes
 例如,如果要将下载速率限制在不超过1 GiB/s,可以使用以下命令: --limit-download 1G 如果未指定,MinIO 将使用不限下载速率。 
- --limit-upload
- :optional:
- 将上传速率限制在不超过指定的速率,单位可以是 KiB/s(千字节每秒)、MiB/s(兆字节每秒)或 GiB/s(吉字节每秒)。 有效单位包括: - Bfor bytes
- Kfor kilobytes
- Gfor gigabytes
- Tfor terabytes
- Kifor kibibytes
- Gifor gibibytes
- Tifor 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 命令 可能 如文档中所 述工作,但任何此类使用都是您自己的风险。
