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
是目标桶的名称。