python 操作 minio
环境安装
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天时间的访问链接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通