PythonAPI操作

以下是一个简单的 Python 脚本,展示了如何连接到 MinIO 服务器,并创建一个存储桶(Bucket),然后上传和下载文件

from minio import Minio  
from minio.error import S3Error  

# MinIO服务器地址、端口、访问密钥和秘密密钥  
endpoint = "play.min.io"  
access_key = "YOUR-ACCESSKEY"  
secret_key = "YOUR-SECRETKEY"  

# 初始化MinIO客户端  
client = Minio(endpoint, access_key=access_key, secret_key=secret_key, secure=True)  

# 检查存储桶是否存在,如果不存在则创建  
bucket_name = "my-bucket"  
try:  
    if not client.bucket_exists(bucket_name):  
        client.make_bucket(bucket_name)  
    print(f"Bucket {bucket_name} created/exists.")  
except S3Error as err:  
    print(err)  

# 上传文件  
file_name = "example.txt"  
file_path = "/path/to/your/example.txt"  
try:  
    with open(file_path, 'rb') as file_data:  
        client.put_object(bucket_name, file_name, file_data, length=-1)  
    print(f"File {file_name} uploaded successfully.")  
except S3Error as err:  
    print(err)  

# 下载文件  
download_path = "/path/to/download/example.txt"  
try:  
    with open(download_path, 'wb') as file_data:  
        client.fget_object(bucket_name, file_name, file_data)  
    print(f"File {file_name} downloaded successfully.")  
except S3Error as err:  
    print(err)  

# 列出存储桶中的所有对象  
try:  
    objects = client.list_objects(bucket_name, prefix='', recursive=True)  
    for obj in objects:  
        print(obj.object_name)  
except S3Error as err:  
    print(err)
  • 安全性:确保在生产环境中使用 HTTPS(secure=True)来保护你的数据传输。
  • 错误处理:在生产代码中,你应该添加更全面的错误处理逻辑来应对各种异常情况。
  • 访问控制:MinIO 支持 IAM(Identity and Access Management)策略,你可以通过配置 IAM 策略来精细控制对存储桶和对象的访问权限。
  • 性能优化:对于大文件或高并发场景,你可能需要调整 MinIO 服务器的配置或优化你的 Python 代码以实现更好的性能。