启用服务端单向存储桶复制

本页面中的过程会创建一条新的存储桶复制规则,用于将对象从一个 MinIO 存储桶单向复制到另一个 MinIO 存储桶。 这些存储桶既可以位于同一个 MinIO 部署中,也可以位于不同的 MinIO 部署中。

主动-被动复制会将数据从源 MinIO 部署同步到远程 MinIO 部署。

要求

复制要求所有参与的集群满足 以下要求。 本过程假定你已经审阅并验证了这些要求。

如需更多详细信息,请参见 存储桶复制要求 页面。

注意事项

点击展开以下任一项:

现有对象的复制

MinIO 支持自动复制存储桶中的现有对象。

MinIO 要求使用 mc replicate add --replicatemc replicate update --replicate 显式启用现有对象复制,并包含 existing-objects 复制功能标志。 本过程包含启用现有对象复制所需的标志。

删除操作的复制

MinIO 支持将 S3 DELETE 操作复制到目标存储桶。 具体来说,MinIO 可以复制版本控制的 Delete Markers,以及删除特定版本对象的操作:

  • 对于对象的删除操作,MinIO 复制也会在目标存储桶上创建删除标记。
  • 对于对象某个版本的删除操作,MinIO 复制也会在目标存储桶上删除这些版本。

MinIO 要求使用 mc replicate add --replicatemc replicate update --replicate 显式启用删除操作复制。 本过程包含启用删除操作和删除标记复制所需的标志。

MinIO 不会 复制因应用 生命周期管理过期规则 而产生的删除操作。

更完整的文档请参见 删除操作的复制对象删除

多站点复制

MinIO 支持为每个存储桶或存储桶前缀配置多个远程目标。 例如,你可以将一个存储桶配置为把数据复制到两个或更多远程 MinIO 部署,其中一个部署是 1:1 副本(复制包括删除在内的所有操作),另一个部署则是完整的历史记录(仅复制非破坏性的写入操作)。

本过程说明了到单个远程 MinIO 部署的单向复制。 你可以重复本教程,将单个存储桶复制到多个远程目标。

过程

使用命令行 mc 配置单向存储桶复制

本过程使用 别名 SOURCEREMOTE 来引用每个配置了复制的 MinIO 部署。 请将这些值替换为你的目标 MinIO 部署对应的别名。

本过程假定每个别名都对应一个具有 必要复制权限 的用户。

1) 创建新的存储桶复制规则

使用 mc replicate add 命令,为每个 MinIO 部署添加新的复制规则。

mc replicate add ALIAS/BUCKET \
   --remote-bucket 'https://USER:PASSWORD@HOSTNAME:PORT/BUCKET' \
   --replicate "delete,delete-marker,existing-objects"
  • ALIAS 替换为源 MinIO 部署的 别名。 该名称 必须 与上一步创建远端目标时指定的存储桶名称一致。

  • BUCKET 替换为源部署上要作为复制源的存储桶名称。

  • 使用 --remote-bucket 指定 ALIAS/BUCKET 要复制到的远端 MinIO 部署和存储桶。

    USER:PASSWORD 必须对应远端部署上具有 所需复制权限 的用户。

    HOSTNAME:PORT 必须能解析到远端部署上可访问的 MinIO 实例。 BUCKET 必须已存在,并满足其他所有 复制要求

  • --replicate "delete,delete-marker,existing-objects" 标志会启用以下复制功能:

    有关更完整的文档,请参阅 mc replicate add --replicate。 省略任意字段即可禁用对应组件的复制。

可按需为 mc replicate add 指定其他受支持的可选参数。

2) 验证复制配置

在其中一个部署上,使用 mc cp 将新对象复制到已启用复制的存储桶中。

mc cp ~/foo.txt ALIAS/BUCKET

使用 mc ls 验证目标存储桶中存在该对象:

mc ls ALIAS/BUCKET
最后修改 August 2, 2026: init commit (8338d5b)

本页部分内容改编自 MinIO 对象存储文档,© 2020–至今 MinIO, Inc.,依据 CC BY 4.0 授权,由 Silo 项目转换与维护。归属与署名

本页为非官方中文翻译。如与英文原文有出入,以英文原文为准。