昨天有一个项目用到Minio来做资源存储,在网上找一些资料,没有一个比较完整的教程,我们知道要从本地批量上传文件到MinIO,可以使用MinIO提供的客户端工具mc(MinIO Client),或者通过编写代码使用MinIO的SDK(如Python、Java、Go等语言的SDK)来实现,今天,我就整理一份自己的操作流程,仅供大家的学习参考。
1.安装Minio
2.上传文件到Minio
我以用官方提供的mc客户端来上传的,其他上传方式,需要的朋友可以自己去尝试一下
以下是使用mc命令行工具和Python SDK两种方法的简要说明:
2.1使用mc命令行工具批量上传文件
window系统
安装mc工具:
首先,你需要从MinIO的官方网站或GitHub仓库下载并安装mc工具。在本地D盘创建一个文件夹662p (其他位置也可以)
配置mc:
打开cmd后切换到对应的文件夹
mc config host add myminio http://10.247.49.20:9000 Access Keys Secret Key
其中http://localhost:9000 是你安装minio的上传地址,ACCESSKEY和SECRETKEY是你的MinIO访问密钥和秘密密钥。开始上传文件
mc cp --recursive D:\662p\ myminio/test
其中662p是你本地文件夹,test是你minio的Buckets
Linux系统
安装mc工具:首先,你需要从MinIO的官方网站或GitHub仓库下载并安装mc工具。
配置mc:
使用mc alias set命令为MinIO服务器设置别名,这样你就可以在后续命令中方便地引用它。例如:
sh
mc alias set myminio http://localhost:9000 ACCESSKEY SECRETKEY
其中http://localhost:9000 是你安装minio的上传地址,ACCESSKEY和SECRETKEY是你的MinIO访问密钥和秘密密钥。
创建存储桶(如果尚未创建):
使用mc mb命令创建一个新的存储桶。例如:
sh
mc mb myminio/mybucket
批量上传文件:
使用mc cp命令将本地文件或目录复制到MinIO存储桶中。如果你想要批量上传一个目录中的所有文件,可以使用通配符或指定目录。例如:
sh
mc cp /path/to/local/files/* myminio/mybucket
或者,如果你想要上传整个目录(包括子目录):
sh
mc cp -r /path/to/local/directory myminio/mybucket
2.2其他方式上传
使用Python SDK批量上传文件安装MinIO Python SDK:
使用pip安装MinIO Python SDK(minio包)。
sh
pip install minio
编写Python脚本:
编写一个Python脚本来连接到MinIO服务器,并批量上传文件。以下是一个简单的示例:
python
from minio import Minio
from minio.error import S3Error
import os
# MinIO服务器的URL、访问密钥和秘密密钥
url = "http://localhost:9000"
access_key = "YOUR-ACCESSKEY"
secret_key = "YOUR-SECRETKEY"
# 初始化MinIO客户端
client = Minio(url, access_key=access_key, secret_key=secret_key, secure=False)
# 指定要上传的本地目录和存储桶名称
local_directory = "/path/to/local/directory"
bucket_name = "mybucket"
# 确保存储桶存在
try:
client.make_bucket(bucket_name)
except S3Error as e:
print(f"Bucket {bucket_name} already exists or error: {e}")
# 遍历本地目录并上传文件
for root, dirs, files in os.walk(local_directory):
for file in files:
file_path = os.path.join(root, file)
object_name = os.path.relpath(file_path, local_directory)
try:
client.fput_object(bucket_name, object_name, file_path)
print(f"Uploaded {file_path} to {bucket_name}/{object_name}")
except S3Error as e:
print(f"Error uploading {file_path}: {e}")
在这个脚本中,os.walk函数用于遍历本地目录的所有文件和子目录,client.fput_object方法用于将每个文件上传到MinIO存储桶中。请确保将YOUR-ACCESSKEY和YOUR-SECRETKEY替换为你的实际访问密钥和秘密密钥。
通过这两种方法,你可以轻松地从本地批量上传文件到MinIO存储桶中。
发表评论 取消回复