文档

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
  • 方括号 [] 表示可选参数。

  • 共享同一行的参数是相互依赖的。

  • 使用管道 | 运算符分隔的参数是相互排斥的。

将示例复制到文本编辑器中,并在终端/shell 中运行命令之前根据需要进行修改。

参数

ALIAS
必填

MinIO 部署的 别名 以及要修改复制规则的存储桶或存储桶前缀的完整路径。例如

mc replicate update --id "c75nrap4b0talo3ipthg" [FLAGS]
--id
必填

指定已配置复制规则的唯一 ID。使用 mc replicate ls 命令列出存储桶的复制规则。

--bandwidth
可选

将带宽速率限制为不超过指定的速率(以 KiB/s、MiB/s 或 GiB/s 为单位)。有效的单位包括

  • B 表示字节

  • K 表示千字节

  • G 表示吉字节

  • T 表示太字节

  • Ki 表示 kibibytes

  • Gi 表示 gibibytes

  • Ti 表示 tebibytes

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

--limit-upload 1Gi

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

--healthcheck-seconds
可选

远程存储桶健康状况检查之间的时间间隔(以秒为单位)。

如果没有指定,MinIO 将使用 60 秒的间隔。

--limit-download
可选

将下载速率限制为不超过指定的速率(以 KiB/s、MiB/s 或 GiB/s 为单位)。有效的单位包括

  • B 表示字节

  • K 表示千字节

  • G 表示吉字节

  • T 表示太字节

  • Ki 表示 kibibytes

  • Gi 表示 gibibytes

  • Ti 表示 tebibytes

例如,要将下载速率限制为不超过 1 GiB/s,请使用以下方法

--limit-download 1G

如果没有指定,MinIO 将使用无限的下载速率。

--limit-upload
可选

将上传速率限制为不超过指定的速率(以 KiB/s、MiB/s 或 GiB/s 为单位)。有效的单位包括

  • B 表示字节

  • K 表示千字节

  • G 表示吉字节

  • T 表示太字节

  • Ki 表示 kibibytes

  • Gi 表示 gibibytes

  • Ti 表示 tebibytes

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

--limit-upload 1G

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

--path
可选

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

有效值包括

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

  • off - 使用资源定位器样式(如域或 IP 地址)查找来查找远程存储桶

  • auto - 要求 MinIO 识别用于查找远程存储桶的正确查找类型

如果未定义,MinIO 将使用 auto 值。

--priority
可选

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

--proxy
可选

在定义存储桶之间的双向活动复制时,不要代理。

有效值包括

  • enable - 在双向活动复制中启用代理。

  • disable - 在双向活动复制中禁用代理。

默认情况下,MinIO 默认设置为 enable

--remote-bucket
可选

指定远程位置的凭据、目标部署和存储桶。值可以是 别名 和存储桶、基于位置(IP 或 URL)或基于路径的。

例如,基于 URL 的目标可能如下所示

--remote-bucket https://user:secret@myminio.cloudprovider.tld:9001/bucket

基于别名的目标可能如下所示

--remote-bucket minio-target/my-bucket
--replicate
可选

指定以下值的逗号分隔列表以启用扩展复制功能

  • delete - 指示 MinIO 将 DELETE 操作 复制到目标存储桶。

  • delete-marker - 指示 MinIO 将删除标记复制到目标存储桶。

  • replica-metadata-sync - 指示 MinIO 将已复制对象的元数据仅更改同步回源。此功能仅影响 双向活动-活动 复制配置。

    省略此值将指示 MinIO 停止将元数据仅更改同步回源。

  • existing-objects - 指示 MinIO 复制在配置或启用复制之前创建的对象。默认情况下,MinIO 不会将现有对象同步到远程目标。

    有关更多信息,请参阅 现有对象的复制

--state
可选

启用或禁用复制规则。指定以下值之一

  • "enable" - 启用复制规则。

  • "disable" - 禁用复制规则。

在复制被禁用时创建的对象在启用规则后不会立即有资格进行复制。您必须通过将 "existing-objects" 包含到为 mc replicate update --replicate 指定的复制功能列表中,显式启用现有对象的复制。

有关更多信息,请参阅 现有对象的复制

--storage-class
可选

指定要应用于已复制对象的 MinIO 存储类别

--sync
可选

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

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

--tags
可选

指定一个或多个以&分隔的键值对标签,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:[email protected]: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 检索存储桶上的复制规则列表及其对应的标识符。

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

注意

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"
        }
    ]
}
  • The "EnableRemoteBucketConfiguration" 语句授予创建远程目标以支持复制的权限。

  • The "EnableReplicationRuleConfiguration" 语句授予在存储桶上创建复制规则的权限。The 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"
        }
    ]
}
  • The "EnableReplicationOnBucket" 语句授予远程目标检索存储桶级配置以支持 MinIO 部署中所有存储桶上的复制操作的权限。要将策略限制为特定存储桶,请将这些存储桶指定为Resource 数组中的元素,类似于"arn:aws:s3:::bucketName"

  • The "EnableReplicatingDataIntoBucket" 语句授予远程目标将数据同步到 MinIO 部署中任何存储桶的权限。要将策略限制为特定存储桶,请将这些存储桶指定为Resource 数组中的元素,类似于"arn:aws:s3:::bucketName/*"

使用mc admin policy create 将此策略添加到充当复制目标的每个部署中。使用mc admin user add 在部署上创建用户,并使用mc admin policy attach 将策略与该新用户关联。

S3 兼容性

The mc 命令行工具是为与 AWS S3 API 兼容而构建的,并已在 MinIO 和 AWS S3 上经过测试,以确保其预期功能和行为。

MinIO 无法保证其他与 S3 兼容的服务,因为它们的 S3 API 实现未知,因此不受支持。虽然 mc 命令可能按文档工作,但任何此类使用均由您自行承担风险。