文档

Python 快速入门指南

适用于 Amazon S3 兼容云存储的 MinIO Python 客户端 SDK Slack Apache V2 许可证

MinIO Python 客户端 SDK 提供高级 API 来访问任何 MinIO 对象存储或其他 Amazon S3 兼容服务。

本快速入门指南介绍了如何安装 MinIO 客户端 SDK、连接到对象存储服务以及创建示例文件上传器。

以下示例使用

play 服务器位于 https://play.min.io,是一个公共 MinIO 集群。该集群运行最新稳定版本的 MinIO,可用于测试和开发。示例中的访问凭据对公众开放,上传到 play 的所有数据都应视为公共数据,且任何人都可以读取。

有关 API 和示例的完整列表,请参阅 Python 客户端 API 参考

安装 MinIO Python SDK

Python SDK 需要 Python 版本 3.7+。您可以使用 pip 或从 minio/minio-py GitHub 存储库安装 SDK。

使用 pip

pip3 install minio

从 GitHub 使用源代码

git clone https://github.com/minio/minio-py
cd minio-py
python setup.py install

创建 MinIO 客户端

要连接到目标服务,请使用以下必需参数,使用 Minio() 方法创建一个 MinIO 客户端。

参数

描述

endpoint

目标服务的 URL。

access_key

服务中用户帐户的访问密钥(用户 ID)。

secret_key

用户帐户的密钥(密码)。

例如

from minio import Minio

client = Minio("play.min.io",
    access_key="Q3AM3UQ867SPQQA43P2F",
    secret_key="zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
)

示例 - 文件上传器

此示例执行以下操作:

  • 使用提供的凭据连接到 MinIO play 服务器。

  • 如果不存在,则创建一个名为 python-test-bucket 的存储桶。

  • /tmp 上传名为 test-file.txt 的文件,并将其重命名为 my-test-file.txt

  • 使用 mc ls验证文件是否已创建。

file_uploader.py

# file_uploader.py MinIO Python SDK example
from minio import Minio
from minio.error import S3Error

def main():
    # Create a client with the MinIO server playground, its access key
    # and secret key.
    client = Minio("play.min.io",
        access_key="Q3AM3UQ867SPQQA43P2F",
        secret_key="zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
    )

    # The file to upload, change this path if needed
    source_file = "/tmp/test-file.txt"

    # The destination bucket and filename on the MinIO server
    bucket_name = "python-test-bucket"
    destination_file = "my-test-file.txt"

    # Make the bucket if it doesn't exist.
    found = client.bucket_exists(bucket_name)
    if not found:
        client.make_bucket(bucket_name)
        print("Created bucket", bucket_name)
    else:
        print("Bucket", bucket_name, "already exists")

    # Upload the file, renaming it in the process
    client.fput_object(
        bucket_name, destination_file, source_file,
    )
    print(
        source_file, "successfully uploaded as object",
        destination_file, "to bucket", bucket_name,
    )

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

要运行此示例:

  1. /tmp 中创建一个名为 test-file.txt 的文件。要使用不同的路径或文件名,请修改 source_file 的值。

  2. 使用以下命令运行 file_uploader.py

python file_uploader.py

如果服务器上不存在存储桶,则输出类似于以下内容:

Created bucket python-test-bucket
/tmp/test-file.txt successfully uploaded as object my-test-file.txt to bucket python-test-bucket
  1. 使用 mc ls 验证上传的文件。

mc ls play/python-test-bucket
[2023-11-03 22:18:54 UTC]  20KiB STANDARD my-test-file.txt

更多参考

深入探索

贡献

贡献者指南

许可证

此 SDK 根据 Apache 许可证 2.0 版 发布,更多信息请参见 LICENSENOTICE

PYPI