python 操作 minio

座右铭:怎么简单怎么来,以实现功能为主。

欢迎大家关注公众号与我交流

环境安装

pip install -U minio

示例代码

import os
from minio import Minio
from loguru import logger
from datetime import timedelta

class Client:
    '''
    endpoint: ip:port
    access_key: your username
    secret_key: your password
    secure: is or not is https
    '''
    def __init__(self, endpoint, access_key, secret_key, secure=False):
        self.client = Minio(endpoint=endpoint, access_key=access_key, secret_key=secret_key, secure=secure)

    def list_buckets(self):
        return self.client.list_buckets()

    def make_bucket(self, bucket_name):
        if not self.client.bucket_exists(bucket_name):
            return self.client.make_bucket(bucket_name=bucket_name)
        else:
            return logger.warning(f"Bucket {bucket_name} already exists")
    
    def upload_file(self, bucket_name, object_name, file_path):
        return self.client.fput_object(bucket_name=bucket_name, object_name=object_name, file_path=file_path)
    
    def share_file(self, bucket_name, object_name, expires=None):
        return self.client.presigned_get_object(bucket_name, object_name, expires=timedelta(days=expires))


if __name__ == "__main__":
    image_path = "/home/abc/imgs"
    user = Client("ip:port", "username", "password") # 替换为你的 地址,用户名,密码

    logger.info(user.list_buckets()) # 列出所有的 bucket

    user.make_bucket("data") # 创建 bucket 命名为 data

    for item in os.listdir(image_path): # 把本地 /home/abc/imgs 下的 所有文件上传文件到 bucket data/test/ 下面
        logger.info(user.upload_file('data', f"test/{item}", f"{image_path}/{item}").object_name)
    
    logger.info(user.share_file("data", "test/1702286610145.jpg", 7)) # 会生成一个有效期为7天时间的访问链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卫龙~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值