首页 > 编程语言 >python之minio基础操作(一)

python之minio基础操作(一)

时间:2023-06-08 09:44:05浏览次数:40  
标签:minio python object bucket client objects 操作 barrel name

from minio import Minio

file_name = '3e09ca66d9444906935b0171e26891f1.mp4'
file_path = r'E:\集成资料\视频素材'
barrel = "testdata"


def upload_file():
    # 创建minio客户端
    client = Minio(endpoint="xxx.xxx.xxx.xxx:xxxxx",
                   access_key='xxxxx',
                   secret_key='xxxxx',
                   secure=False  # 使用http
                   )
    # 创建桶
    client.make_bucket(bucket_name=barrel)

    # 删除桶
    client.remove_bucket(barrel)

    # 获取桶列表
    barrel_list = client.list_buckets()
    print(barrel_list)

    # 获取桶中的数据信息,不查子文件夹中的数据
    bucket_objects = client.list_objects(barrel)
    for bucket_object in bucket_objects:
        print(bucket_object.object_name)

    # 列出名称以1-4开头的数据信息
    bucket_objects = client.list_objects(barrel, prefix="1-4")
    for bucket_object in bucket_objects:
        print(bucket_object)

    # 递归遍历桶中的数据信息,读取子文件夹下的文件
    bucket_objects = client.list_objects(barrel, recursive=True)
    for bucket_object in bucket_objects:
        print(bucket_object.object_name)

    # 递归查找以/data开头的数据信息
    data = list()
    for root in ["/data1"]:
        bucket_objects = client.list_objects(barrel, prefix=root, recursive=True)
        for bucket_object in bucket_objects:
            data.append(bucket_object.object_name)
            # print(bucket_object.object_name)
    print(len(data))

    # 递归查找以data1同一层级的数据信息
    bucket_objects = client.list_objects(barrel, recursive=True, start_after="data1")
    for bucket_object in bucket_objects:
        print(bucket_object.object_name)

    # 上传文件, bucket_name: 桶名称, object_name:上传到桶中完整的文件路径, file_path:文件本地所在完整路径
    result = client.fput_object(bucket_name=barrel, object_name="data1/" + file_name,
    file_path=file_path + "/" + file_name)
    print(result.object_name, result.bucket_name, result.etag)

    # 下载文件,bucket_name: 桶名称, object_name:被下载文件完整路径, file_path:保存到本地的完整路径
    result = client.fget_object(bucket_name=barrel, object_name="data1/60719d5c50e833d4fa8af3b7412d40000a2.jpg",
                                file_path=r"E:\集成资料\测试项目\minio\1.jpg")
    print(result.object_name, result.content_type, result.owner_name)

    # 判断桶是否存在
    check_bucket = client.bucket_exists(barrel)
    if not check_bucket:  # 不存在则创建桶
        client.make_bucket(barrel)


if __name__ == '__main__':
    upload_file()

 

标签:minio,python,object,bucket,client,objects,操作,barrel,name
From: https://www.cnblogs.com/mian-1122/p/17463849.html

相关文章

  • 【python基础】循环语句-for循环
    1.初始for循环for循环可以遍历任何可迭代对象,如一个列表或者一个字符串。这里可迭代对象的概念我们后期介绍,先知道这个名词就好了。其语法格式之一:比如我们遍历学员名单,编写程序如下所示:for循环如果放在生产生活中的话,也类似于循环处理,但较while循环有区别,其区别就在于条件......
  • 1.ES入门与基本操作
    1.介绍与安装1.1.ElasticStack核心TheElasticStack,包括Elasticsearch、Kibana、Beats和Logstash(也称为ELKStack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。ES(ElaticSearch)是一个开源的高扩展的分布式全文搜索引擎,是整个Elas......
  • python 中统计指定字符串出现的次数
     001、>>>str1="abcdaaab"##测试字符串>>>str1.count("a")##统计a出现的次数4>>>str1.count("b")2>>>str1.count("c")1>>>str1.count("a",0,4)......
  • 2023年5月31号聊一下今天以及最近的操作与感想!
    今天操作白糖日线向下,所以它稍微有点向下的趋势我就空了,最多浮亏1800,后面看到回本就跑了......
  • python 中字符串大小写的转换
     001、全部转换为大写、或者全部转换为小写>>>str1="abcDEFgh">>>str1.lower()###小写'abcdefgh'>>>str1.upper()##大写'ABCDEFGH'>>>str1'abcDEFgh'>>>str1.casefo......
  • python读txt文档-多列
    有一个txt格式的文本文档,格式如下。有两行数据。3个字段,字段与字段直接使用tab键分割开。hello1world1hellothankyou1hello2world2hellothankyou2现在想通过python读取这个文件。分别读取到hello1,world1,和 hellothankyou1代码如下。withopen('......
  • 混合编程python与C++
    上个版本:只是用到ctypes进行传输,这次将python服务端更改为C++服务端,方便后续维护.本文实现功能:python传输图片给C++,C++接受图片后对图片进行处理,并将结果返回给python客户端,passimagefrompythontoC++C++服务端.h文件注意文中的model//.h#pragmaonce#in......
  • Python设计模式-01工厂模式
    工厂模式工厂模式(FactoryPattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需指定将要创建的对象的确切类。工厂模式通过定义一个工厂接口来创建对象,让子类决定实例化哪个类。这样可以将对象的创建与使用分离,从而降低系统的耦合度。工厂模式包含三种角色:具体工......
  • python opencv图片旋转任意角度
    pythonopencv图片旋转任意角度 importcv2#Loadtheimageimg=cv2.imread("20230222100736979.jpg")#Gettheimagedimensionsheight,width=img.shape[:2]#Settherotationangleangle=25#Calculatetherotationmatrixrotation_matrix=cv2......
  • 【python】一个同步的队列类queue
    queuequeue 模块实现了多生产者、多消费者队列。这特别适用于消息必须安全地在多线程间交换的线程编程。模块中的 Queue 类实现了所有所需的锁定语义。 函数作用Queue.qsize()返回队列的大致大小。注意,qsize()>0不保证后续的get()不被阻塞,qsize()<maxsize......