MinIO Python Client SDK 快速入门指南

官方文档地址:http://docs.minio.org.cn/docs/master/python-client-quickstart-guide

MinIO Python Client SDK提供简单的API来访问任何与Amazon S3兼容的对象存储服务。

最低要求

Python 2.7或更高版本

使用pip安装

pip install minio

初始化MinIO Client

MinIO client需要以下4个参数来连接MinIO对象存储服务。

参数 描述
endpoint 对象存储服务的URL。
access_key Access key是唯一标识你的账户的用户ID。
secret_key Secret key是你账户的密码。
secure true代表使用HTTPS。
from minio import Minio
from minio.error import ResponseError

minioClient = Minio('play.min.io',
                  access_key='Q3AM3UQ867SPQQA43P2F',
                  secret_key='zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
                  secure=True)

示例-文件上传

本示例连接到一个MinIO对象存储服务,创建一个存储桶并上传一个文件到存储桶中。

我们在本示例中使用运行在 https://play.min.io 上的MinIO服务,你可以用这个服务来开发和测试。示例中的访问凭据是公开的。

# 引入MinIO包。
from minio import Minio
from minio.error import (ResponseError, BucketAlreadyOwnedByYou,
                         BucketAlreadyExists)

# 使用endpoint、access key和secret key来初始化minioClient对象。
minioClient = Minio('play.min.io',
                    access_key='Q3AM3UQ867SPQQA43P2F',
                    secret_key='zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
                    secure=True)

# 调用make_bucket来创建一个存储桶。
try:
       minioClient.make_bucket("maylogs", location="us-east-1")
except BucketAlreadyOwnedByYou as err:
       pass
except BucketAlreadyExists as err:
       pass
except ResponseError as err:
       raise
else:
        try:
               minioClient.fput_object('maylogs', 'pumaserver_debug.log', '/tmp/pumaserver_debug.log')
        except ResponseError as err:
               print(err)

实际操作演示 (使用自签名证书,https://192.168.20.102:9000)

from minio import Minio
from minio.error import S3Error
import urllib3

httpClient = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs='./certs/public.crt')

# public.crt为自定义的签名证书

def main():
    client = Minio(
        "192.168.20.102:9000",
        access_key="admin",
        secret_key="12345678",
        secure=True, # 默认为True,表示地址用的是https
        http_client=httpClient # 定制http_clinet,加载上自签名证书,否则会报证书验证错误
    )

    # 判断存储桶asiatrip是否存在,不存在则创建
    found = client.bucket_exists("asiatrip")
    if not found:
        client.make_bucket("asiatrip")
    else:
        print("Bucket 'asiatrip' already exists")
    
    # 往上一步的存储桶里上传证书文件
    client.fput_object(
        "asiatrip", "public.crt", "./certs/public.crt",
    )
    print(
        "'public.crt' is successfully uploaded as "
        "object 'public.crt' to bucket 'asiatrip'."
    )


if __name__ == "__main__":
    try:
        main()
    except S3Error as exc:
        print("error occurred.", exc)

实际操作演示 (不使用证书,http://192.168.20.102:9000)

from minio import Minio
from minio.error import S3Error

def main():
    client = Minio(
        "192.168.20.102:9000",
        access_key="admin",
        secret_key="12345678",
        secure=False  # 默认为True,表示地址用的是https
    )

    # 判断存储桶asiatrip是否存在,不存在则创建
    found = client.bucket_exists("asiatrip")
    if not found:
        client.make_bucket("asiatrip")
    else:
        print("Bucket 'asiatrip' already exists")
    
    # 往上一步的存储桶里上传证书文件
    client.fput_object(
        "asiatrip", "public.crt", "./certs/public.crt",
    )
    print(
        "'public.crt' is successfully uploaded as "
        "object 'public.crt' to bucket 'asiatrip'."
    )


if __name__ == "__main__":
    try:
        main()
    except S3Error as exc:
        print("error occurred.", exc)
posted @ 2022-03-10 14:50  哈喽哈喽111111  阅读(2164)  评论(0编辑  收藏  举报