python调用minio api接口

需要提前安装minio依赖库

pip install minio

获取bucket列表

from minio import Minio

client = Minio("10.1.60.40:9000","admin","Ylln@9527",secure=False)

buckets=client.list_buckets()

for bucket in buckets:

     print(bucket.name,bucket.creation_date)

 上传文件到bucket中

from minio import Minio

client = Minio("10.1.60.40:9000","admin","Ylln@9527",secure=False)

#不能直接上传目录,只能通过递归的方式上传

source_file = "./check_data_status.py"

bucket="picture"

#必须要填写文件名称

destination_file = "/py/check_data_status.py"

client.fput_object(bucket,destination_file,source_file)

更多方法可参考:Python Client API Reference — MinIO Object Storage for Linux

### Python 使用 Boto3 连接 MinIO 对象存储服务 要使用 `Boto3` 库连接并操作 MinIO 对象存储服务,可以按照以下方式实现。以下是详细的说明以及代码示例: #### 安装依赖 首先需要安装 `boto3` 和其他必要的库: ```bash pip install boto3 ``` #### 配置 MinIO 的访问凭证 为了能够成功连接到 MinIO 服务器,需提供正确的访问密钥 (`access_key`) 和秘密密钥 (`secret_key`)。这些通常由 MinIO 提供。 #### 示例代码:连接 MinIO 并执行基本操作 下面是一个完整的示例,展示如何使用 `Boto3` 来连接 MinIO 存储服务,并完成一些基础的操作,比如创建 Bucket 或上传文件。 ```python import boto3 from botocore.exceptions import NoCredentialsError, ClientError def connect_to_minio(endpoint_url='http://localhost:9000', access_key='your-access-key', secret_key='your-secret-key'): """建立与 MinIO 的连接""" session = boto3.session.Session() client = session.client( service_name='s3', endpoint_url=endpoint_url, aws_access_key_id=access_key, aws_secret_access_key=secret_key ) return client def create_bucket(client, bucket_name): """创建一个新的 Bucket""" try: response = client.create_bucket(Bucket=bucket_name) print(f"Bucket '{bucket_name}' created successfully.") return response except ClientError as e: print(f"Failed to create bucket {bucket_name}. Error: {e}") return None def upload_file(client, file_path, bucket_name, object_name=None): """上传文件至指定的 Bucket 中""" if not object_name: object_name = file_path.split('/')[-1] try: with open(file_path, 'rb') as data: client.upload_fileobj(data, bucket_name, object_name) print(f"File uploaded successfully to {object_name} in bucket {bucket_name}.") except FileNotFoundError: print("The file was not found.") except NoCredentialsError: print("Credentials not available.") if __name__ == "__main__": # 替换为实际的 MinIO 地址、Access Key 和 Secret Key minio_client = connect_to_minio( endpoint_url="http://localhost:9000", access_key="minioadmin", secret_key="minioadmin" ) # 创建新的 Bucket new_bucket_name = "my-new-bucket" create_bucket(minio_client, new_bucket_name) # 上传文件到 Bucket local_file_path = "/path/to/your/file.txt" upload_file(minio_client, local_file_path, new_bucket_name) ``` 上述代码展示了如何通过 `Boto3` 实现对 MinIO 的连接和交互功能[^4]。注意替换默认的 `endpoint_url`, `access_key`, 和 `secret_key` 参数为你自己的设置。 #### 关键点解析 - **Endpoint URL**: 默认情况下,MinIO 在本地运行时会监听 `http://localhost:9000`。如果是在远程主机上部署,则应修改此值。 - **Access Key & Secret Key**: 如果未更改,默认管理员用户的 Access Key 是 `minioadmin`,Secret Key 同样也是 `minioadmin`[^5]。 - **异常处理**: 上述代码包含了针对常见错误 (如无权限或找不到文件) 的简单捕获逻辑。 #### 注意事项 当尝试生成签名链接或者更复杂的 S3 API 调用时,可能还需要额外配置 IAM 用户或其他安全措施[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值