首页 > 编程语言 >python 操作 minio

python 操作 minio

时间:2024-03-08 15:35:17浏览次数:23  
标签:file minio python self object bucket key 操作 name

环境安装

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天时间的访问链接

 

标签:file,minio,python,self,object,bucket,key,操作,name
From: https://www.cnblogs.com/gwt805/p/18061099

相关文章

  • windows 安装 minio
    1.打开官网链接https://www.minio.org.cn/2.点击下载3.点击windows,然后点击MINIOSERVER右侧的DOWNLOAD进行下载4.找到环境变量,新建系统变量,设置MINIO的用户名和密码5.启动MINIOSERVERminio.exeserverD:/data#server后面的路径需绝对路径6.可以......
  • python代码 新手教学
    #Python新手教学##简介Python是一种简单易学的编程语言,广泛应用于各个领域,包括Web开发、数据科学、人工智能等。本文将为新手程序员提供Python基础知识的教学,包括变量、数据类型、条件语句、循环、函数等内容。##变量和数据类型在Python中,变量用于存储数据,而数据类型则定义了......
  • (笔记)Vivado操作之时序约束介绍
     一、前言      任何一个FPGA工程都需要设置相关的时序约束,下面将介绍Vivado中如何进行时序约束操作以及各种约束的使用方法。 二、时序约束界面        在一个工程运行到IMPLEMENTATION后,进入到左侧的FlowNavigator窗口,点击IMPLEMENTION下的EditConstraint......
  • VOL表格动态添加操作按钮及弹窗确认方法
    VOL表格动态添加操作按钮及弹窗确认方法有好多方法,感觉这种方法最好,效果如下图代码如下onInit()://操作按钮this.columns.push({title:'操作',hidden:false,align:"cent......
  • Python实现企业微信上下班自动打卡程序
    一、介绍在写了这么多手机端自动化测试程序后,基于使用的uiautoamtor2,最近,我突然想用Python尝试自动打开企微在上下班时间打卡操作,今天我就来分享一下我的经验和总结。二、技术原理要想通过Python控制手机APP,目前主要技术如下。2.1、Android体系在Android中,官方有一个叫adb的......
  • python字典存入csv
     存入csvimportcsvfromconfig.globalparameterimportexecl_saveimportcsvtitle='这是一个标题'price=23.45deal=5location='广东广州'province='广东'city='广州'shop='门店'result=1#构建商品信息字典pr......
  • 计算机操作系统之 进程 线程
     一、并行和并发在介绍进程、线程和协程这三个概念之前,有两个操作系统中的相关概念需要简单解释一下:并行和并发。并行:同一时刻,指多个任务同时执行。并发:指在一个时间段内,多个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行(即多个任务在同一处理机......
  • python-Django基础学习笔记
    (由于笔记来自本地的Typora,图片未能上传,文章内容并不完整)路由器配置初始Django-创建/结构/配置settingsURL定义/视图函数路由配置path、re_pathpython-mvenv"名字"#下载Django环境pipinstalldjango==2.2.2-ihttps://pypi.douban.com/simple#激活虚拟环境D:......
  • Python 第三方库安装国内镜像汇总
    Python第三方库安装国内镜像汇总: 清华大学: https://pypi.tuna.tsinghua.edu.cn/simple阿里云: http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中科技大学: http://pypi.hustunique.com/山东理工大学: http://pyp......
  • aiofiles,一个异步测试的 Python 库!
    什么是aiofiles库?aiofiles是一个异步文件操作库,提供了一种简单而强大的方式来执行文件操作,包括打开文件、读取文件、写入文件等。aiofiles库是建立在asyncio之上的,它允许开发人员在异步程序中执行文件操作,而不会阻塞事件循环。安装aiofiles库pipinstallaiofiles基本......