提示信息

minio python使用举例

心妍 已关注

要在 Python 中使用 MinIO,可以使用 minio Python 客户端库来与 MinIO 服务进行交互。以下是如何通过 Python 连接到 MinIO,上传文件,下载文件,以及列出存储桶中对象的示例:

安装 MinIO Python 客户端

首先,你需要安装 MinIO 的 Python 客户端。可以使用 pip 工具进行安装:

  1. pip install minio

使用示例

以下示例展示了如何在 Python 中使用 MinIO 客户端进行基本操作,例如连接 MinIO 服务器,创建存储桶,上传和下载文件等。

  1. from minio import Minio
  2. from minio.error import S3Error
  3. # 连接到 MinIO 服务器
  4. minio_client = Minio(
  5. "play.min.io", # MinIO 服务的主机名或 IP 地址
  6. access_key="YOUR-ACCESS-KEY", # 替换为你的 Access Key
  7. secret_key="YOUR-SECRET-KEY", # 替换为你的 Secret Key
  8. secure=True # 根据需要(HTTP 或 HTTPS)设置为 True 或 False
  9. )
  10. # 创建一个存储桶,如果存储桶不存在
  11. bucket_name = "my-bucket"
  12. if not minio_client.bucket_exists(bucket_name):
  13. minio_client.make_bucket(bucket_name)
  14. print(f"Bucket '{bucket_name}' created.")
  15. else:
  16. print(f"Bucket '{bucket_name}' already exists.")
  17. # 上传文件到存储桶
  18. file_path = "path/to/your/localfile.txt"
  19. object_name = "uploaded-file.txt"
  20. minio_client.fput_object(bucket_name, object_name, file_path)
  21. print(f"'{file_path}' is successfully uploaded as '{object_name}' to bucket '{bucket_name}'.")
  22. # 列出存储桶中的对象
  23. objects = minio_client.list_objects(bucket_name)
  24. print(f"Objects in bucket '{bucket_name}':")
  25. for obj in objects:
  26. print(obj.object_name)
  27. # 下载对象到本地文件
  28. download_path = "path/to/downloaded-file.txt"
  29. minio_client.fget_object(bucket_name, object_name, download_path)
  30. print(f"'{object_name}' is successfully downloaded as '{download_path}'.")
  31. # 处理异常
  32. try:
  33. # 可以在这里添加更多的操作和异常处理
  34. pass
  35. except S3Error as exc:
  36. print("Error occurred.", exc)

说明

  • Minio Client: 使用 Minio() 类来创建一个新的 Minio 客户端实例,该实例需要 MinIO 服务器地址和访问密钥。
  • 存储桶操作: 使用 bucket_exists()make_bucket() 方法来检查和创建存储桶。
  • 文件操作:
    • 使用 fput_object() 上传文件。
    • 使用 list_objects() 列出存储桶内所有对象。
    • 使用 fget_object() 下载文件。

请确保替换示例中的 YOUR-ACCESS-KEYYOUR-SECRET-KEY 以及其他路径到你的实际信息。

这些示例演示了如何使用基本的对象存储操作,但 MinIO API 客户端还支持更多高级功能,如分区上传、策略管理等,可以根据需求进行拓展。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
心妍 关注 已关注

最近一次登录:2025-01-17 17:52:16   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图