MinIO是一个分布式对象存储服务器,专为大规模私有云基础架构设计,也适用于云原生环境和大规模数据存储需求。最重要的是它是开源的, 因此应用极为广泛, 今天来研究一下如何迁移minio桶中的数据
要将 MinIO 中某个桶(Bucket)中的数据全部导出,可以使用 mc(MinIO Client)工具来实现。mc 是 MinIO 提供的一个命令行工具,专门用来与 MinIO 或其他兼容 S3 的存储服务交互。通过 mc,你可以方便地将 MinIO 桶中的所有数据导出。
安装 MinIO 客户端(mc)
minioClien下载地址: https://min.io/open-source/download?platform=linux
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mc alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
配置 MinIO 客户端(mc)
在运行命令之前,必须先配置 mc,以连接到 MinIO 服务器。运行以下命令并提供 MinIO 的访问密钥和密钥:
mc alias set myminio https://your-minio-server:9000 ACCESS_KEY SECRET_KEY
myminio是配置的别名,可以随意命名。https://your-minio-server:9000是 MinIO 服务器的 URL。ACCESS_KEY和SECRET_KEY是你在 MinIO 中设置的访问密钥和密钥。
导出桶的所有数据
使用 mc 工具的 mirror 命令来导出(下载)桶中的数据。
这个命令会将整个桶的数据复制到本地目录中。
mc mirror myminio/my-bucket /path/to/local/directory
myminio/my-bucket是 MinIO 上的桶名称。/path/to/local/directory是你想将数据保存到的本地目录路径。
这个命令会将 my-bucket 桶中的所有文件(包括子目录)复制到本地目录。
下载完成后,你可以进入本地目录查看导出的文件。如果桶内有大量数据,导出过程可能需要一些时间。
将数据合并到新的新的桶
假设你已经使用 mc 配置了两个 MinIO 服务器别名。例如:
myminio用于源桶(从中导出数据)。myminio2用于目标桶(上传数据)。
确保 MinIO 客户端(mc)已配置
mc alias set myminio2 https://your-minio-server2:9000 ACCESS_KEY2 SECRET_KEY2
将数据上传到目标桶
使用 mc mirror 或 mc cp 命令将从源桶下载的文件上传到目标桶。
-
使用
mc mirror命令进行同步:如果你已经将数据从源桶下载到本地,可以使用
mc mirror将本地目录的内容上传到目标桶:
mc mirror /path/to/local/directory myminio2/my-new-bucket
/path/to/local/directory是存储导出数据的本地目录。myminio2/my-new-bucket是目标 MinIO 服务器的桶名称。
这个命令会将本地目录中的所有文件和子目录上传到目标桶。
使用 mc cp 命令上传特定文件
如果你只想上传某些文件,可以使用 mc cp 命令。例如,要上传一个文件:
mc cp /path/to/local/file.txt myminio2/my-new-bucket
/path/to/local/file.txt是本地文件路径。myminio2/my-new-bucket是目标桶的名称。
