python client官方文档地址:MinIO Object Storage for Kubernetes — MinIO Object Storage for Kubernetes
1.将本地文件(夹),传输到MinIO指定Buckets
from minio import Minio
import os
from tqdm import trange
def Uplaod_folder(bucket_name, folder, client):
"""
功能描述:将本地文件(夹),传输到MinIO指定Buckets
PS1:支持断点续传
公众号:CV初学者
:param bucket_name: MinIO的Buckets名称
:param folder: 本地待传文件夹地址
:param client: 用户信息
:return:
"""
for root, dirs, files in os.walk(folder, topdown=False, followlinks=False):
for i in trange(len(files)):
filename = files[i]
# print(os.path.join(root, name))
# if windows,[3:] elif linux,[2:]
object_name = os.path.join(root, filename)[2:].replace('\\', '/')
# print(object_name)
file_path = os.path.join(root, filename)
# print('\n')
try:
# 获取对象的元数据,能成功,就说明对象存在,否则对象出错,对象不存在
client.stat_object(bucket_name=bucket_name, object_name=object_name)
except:
try:
# 通过文件上传到对象中 fput_object(存储桶名称, 对象名称, 本地文件的路径)
client.fput_object(bucket_name=bucket_name, object_name=object_name, file_path=file_path)
except:
print('Upload error')
def main():
bucket_name = 'raw-data'
file_path = r'./NO4_hosp'
# Create client with access and secret key.
client = Minio(endpoint="192.168.x.x:x", access_key="YSFH2L5xxxxxxxxxxxx",
secret_key="3VhBVmO187xxxxxxxxxx", secure=False)
Uplaod_folder(bucket_name, file_path, client)
if __name__ == '__main__':
main()
1.1 client用户access_key、secret_key的获取
# 引入MinIO包。
from minio import Minio
# 使用endpoint、access key和secret key来初始化minioClient对象。
minioClient = Minio('play.min.io',
access_key='(修改为你的)',
secret_key='(修改为你的)',
secure=True)
MinIO client需要以下4个参数来连接MinIO对象存储服务。
参数 | 描述 |
---|---|
endpoint | 对象存储服务的URL。 |
access_key | Access key是唯一标识你的账户的用户ID。 |
secret_key | Secret key是你账户的密码。 |
secure | true代表使用HTTPS。 |
1.2 stat_object
# 获取对象的元数据,能成功,就说明对象存在,否则对象出错,对象不存在
client.stat_object(bucket_name=bucket_name, object_name=object_name)
如果存在,在获取,否则不存在,则报错,如下:
1.3 fput_object
# 通过文件上传到对象中 fput_object(存储桶名称, 对象名称, 本地文件的路径)
client.fput_object(bucket_name=bucket_name, object_name=object_name, file_path=file_path)