数据存储管理工具之-MinIO学习功能记录

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_keyAccess key是唯一标识你的账户的用户ID。
secret_keySecret key是你账户的密码。
securetrue代表使用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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钱多多先森

你的鼓励,是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值