minio大批量复制文件到桶中

一、首先在服务器安装数据迁移工具rclone

Rclone是一个命令行程序,用于管理云存储上的文件。它是云供应商的web存储接口的一个功能丰富的替代品。超过40种云存储产品支持rclone,包括S3对象存储、企业和消费者文件存储服务以及标准传输协议。

Rclone具有与unix命令rsync、cp、mv、mount、ls、ncdu、tree、rm和cat相同的强大的云版本。Rclone熟悉的语法包括shell管道支持和——dry-run保护。它可在命令行、脚本中或通过其API使用。


下载 https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone
sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
sudo mandb

二、查看rclone 版本

查看版本:rclone version

[root@WGSZJQR_VM05 citc]# rclone version
rclone v1.65.1
- os/version: centos 7.9.2009 (64 bit)
- os/kernel: 3.10.0-1160.el7.x86_64 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.21.5
- go/linking: static
- go/tags: none



三、rclone配置minio

一般是在/root/.config/rclone目录下创建配置文件rclone.conf,内容如下:

[minio]
type = s3
provider = Minio
env_auth = false
access_key_id = 
secret_access_key = 
region = 
endpoint = http://x.x.x.x:9000
location_constraint =
server_side_encryption =



配置内容参数说明:

[minio] -->配置的名称,自定义
type = s3 -->存储方式,minio属于:s3
provider = Minio -->供应商
env_auth = false -->AWS凭证,默认false
access_key_id = minio -->S3账户AK
secret_access_key = minio123 -->S3账户SK
region = cn-east-1 -->连接的地域
endpoint = http://x.x.x.x:9000 -->S3存储访问地址
location_constraint = -->位置约束-必须设置为与区域匹配,可以设置为空
server_side_encryption =

四、rclone命令

查看minio下存储的所有bucket,若无报错则通信正常。
rclone lsd minio:

将minio中指定桶test中的所有文件复制到本地文件夹下(可以用来做数据的备份)
rclone copy minio:test  /opt/test/

将本地备份文件复制到存储桶newtest中,可以添加参数 -P 来查看进度
rclone copy -P /opt/test/ minio:newtest

将本地需要迁移到minio中的文件同步到bucket储存桶中,可以添加参数 -P 来查看进度
rclone sync -P /opt/test/ minio:bucket

五、两个minio的数据在线迁移

[minio]
type = s3
provider = Minio
env_auth = false
access_key_id = x
secret_access_key = x
region = cn-east-1
endpoint = http://x.x.x.x.12:9000
location_constraint =
server_side_encryption =
 
[minio1]
type = s3
provider = Minio
env_auth = false
access_key_id = x
secret_access_key = x
region = cn-east-1
endpoint = http://x.x.x.13:9000
location_constraint =
server_side_encryption =



# 执行同步指令并能查看进度
rclone sync -P minio:test minio1:test
 
# minio配置文件中的[minio]的地址,minio1则是[minio1]的地址
# minio:test对应的意思是 x.x.x.12:9000的test桶
# minio1:test则是对应的 x.x.x.13:9000的test桶
 
 
# 执行复制指令并能查看进度
rclone -P copy minio1:test2  minio:test3

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于MinIO文件复制,您可以使用以下几种方法: 1. 使用MinIO客户端(mc):MinIO客户端是一个命令行工具,可以用于管理和操作MinIO对象存储。您可以使用mc命令复制文件。例如,要将文件从一个存储复制到另一个存储,可以使用以下命令: ``` mc cp <SOURCE> <TARGET> ``` 其,`<SOURCE>`是源对象的路径(包括存储名称和文件路径),`<TARGET>`是目标对象的路径。 2. 使用MinIO Python SDK:MinIO提供了Python SDK,使您可以通过编写Python代码来管理和操作MinIO对象存储。您可以使用`copy_object()`方法来复制文件。以下是一个示例代码片段: ```python from minio import Minio # 创建MinIO客户端实例 client = Minio("your-minio-url", access_key="your-access-key", secret_key="your-secret-key") # 复制文件 client.copy_object("target-bucket", "target-object", "source-bucket/source-object") ``` 在上述代码,您需要替换`your-minio-url`、`your-access-key`、`your-secret-key`、`target-bucket`、`target-object`、`source-bucket`和`source-object`为相应的值。 3. 使用MinIO Java SDK:如果您习惯使用Java开发,MinIO还提供了Java SDK,您可以使用Java代码来复制文件。以下是一个示例代码片段: ```java import io.minio.MinioClient; import io.minio.CopyObjectArgs; // 创建MinIO客户端实例 MinioClient client = new MinioClient("your-minio-url", "your-access-key", "your-secret-key"); // 复制文件 client.copyObject( CopyObjectArgs.builder() .bucket("target-bucket") .object("target-object") .source("source-bucket/source-object") .build()); ``` 在上述代码,您需要替换`your-minio-url`、`your-access-key`、`your-secret-key`、`target-bucket`、`target-object`、`source-bucket`和`source-object`为相应的值。 这些方法都可以帮助您在MinIO实现文件复制操作。希望对您有所帮助!如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值