中文文档

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 bytes

  • K for kilobytes

  • G for gigabytes

  • T for terabytes

  • Ki for kibibytes

  • Gi for gibibytes

  • Ti for tebibytes

例如,要将带宽速率限制为不超过 1 GiB/s,请使用以下命令:

--limit-upload 1Gi

如果未指定,MinIO 不会限制带宽速率。

--healthcheck-seconds
Optional

远程桶健康状态检查之间的时间长度,以秒为单位。

如果未指定,MinIO 默认使用 60 秒的时间间隔进行健康检查。

--limit-download
Optional

将下载速率限制在不超过指定的速率,单位可以是 KiB/s(千字节每秒)、MiB/s(兆字节每秒)或 GiB/s(吉字节每秒)。 有效单位包括:

  • B for bytes

  • K for kilobytes

  • G for gigabytes

  • T for terabytes

  • Ki for kibibytes

  • Gi for gibibytes

  • Ti for tebibytes

例如,如果要将下载速率限制在不超过1 GiB/s,可以使用以下命令:

--limit-download 1G

如果未指定,MinIO 将使用不限下载速率。

--limit-upload
:optional:

将上传速率限制在不超过指定的速率,单位可以是 KiB/s(千字节每秒)、MiB/s(兆字节每秒)或 GiB/s(吉字节每秒)。 有效单位包括:

  • B for bytes

  • K for kilobytes

  • G for gigabytes

  • T for terabytes

  • Ki for kibibytes

  • Gi for gibibytes

  • Ti for tebibytes

例如,要将上传速率限制为不超过1 GiB/s,可以使用以下方法:

--limit-upload 1G

如果未指定,MinIO将使用无限上传速率。

--path
Optional

为远程存储桶启用路径式查找支持。

有效值包括:

  • on - 使用路径查找来查找远程桶

  • off - 使用资源定位器风格(如域名或IP地址)查找远程桶

  • auto - 请MinIO确定使用哪种查找方式来找到远程桶。

当未定义时,MinIO 使用默认值 auto

--priority
Optional

指定复制规则的整数优先级。 该值 必须 在源桶上的所有其他规则中是唯一的。 较高值意味着 高于 所有其他规则的优先级。

--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 存储类

--sync
Optional

为这个远程目标启用同步复制。

默认情况下,MinIO 使用异步复制。

--tags
Optional

指定一个或多个由与号 & 分隔的键值对标签,MinIO 使用这些标签来过滤要复制的对象。例如:

mc replicate update --id "ID" --tags "TAG1=VALUE&TAG2=VALUE&TAG3=VALUE"

MinIO 将复制规则应用于任何具有指定复制标签的 标签集的对象。

全局标记

此命令支持任何 全局标志

示例

修改现有复制规则

使用 mc replicate update 修改现有的复制规则。

mc replicate update ALIAS/PATH \
   --id ID                     \
   [--FLAGS]
  • ALIAS 替换为 MinIO 部署的 alias

  • 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
  • ALIAS 替换为 MinIO 部署的 alias

  • PATH 替换为规则存在的存储桶或存储桶前缀的路径。

  • ID 替换为更新的凭据、路径和存储桶。

禁用或启用现有复制规则

使用 mc replicate update 命令配合 --state 标志来禁用或启用一个复制规则。

mc replicate update ALIAS/PATH \
   --id ID \
   --state "disable"|"enable"
  • ALIAS 替换为 MinIO 部署的 alias

  • PATH 替换为规则存在的存储桶或存储桶前缀的路径。

  • ID 替换为要修改的规则的唯一标识符。 使用 mc replicate ls 命令来检索存储桶上的复制规则及其相应的标识符列表。

  • --state 标志指定 disableenable 来禁用或启用复制规则。

备注

MinIO 要求启用 现有对象的复制,以便在禁用复制规则后同步新写入或删除的对象。

对于 没有 启用现有对象复制的规则,MinIO 只同步在复制规则处于*启用*状态时发出的写入或删除操作。

行为

所需权限

MinIO 强烈建议为支持存储桶复制操作创建特定的用户。 有关向 MinIO 部署添加用户和策略的更完整文档,请参见 mc admin usermc 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 命令 可能 如文档中所 述工作,但任何此类使用都是您自己的风险。

Join Slack 商业支持购买咨询