MinIO简介
MinIO 是一个开源的高性能对象存储解决方案。它与 Amazon S3 云存储服务 API 兼容。可以使用 MinIO 为 ML、分析和应用程序数据工作负载设置高性能基础架构。 MinIO 是云对象存储的一个很好的本地替代方案。本文将简要介绍在您的机器上运行 MinIO 并让读者熟悉它的基础知识。请不要在生产中使用这些设置!
继续阅读以了解如何:-
1.搭建单节点MinIO实例
2.生成访问令牌
3.创建一个MinIO桶
-
将文件添加到 MinIO 存储桶
-
从 MinIO 存储桶中检索文件
-
生成预签名 URL 来服务 MinIO 对象
设置 MinIO
为了设置 MinIO,我们将使用 Docker,特别是 docker-compose。我之前使用 docker-compose 介绍了,如果您不熟悉它的用法,强烈建议您阅读这篇文章。复制下面代码片段的内容,并在您要存储 MinIO 对象的目录中创建一个名为 docker-compose.yml 的文件。
version: '3'
services:
minio:
image: quay.io/minio/minio:RELEASE.2022-02-18T01-50-10Z
volumes:
- ./data:/data
ports:
- 9000:9000
- 9001:9001
environment:
MINIO_ROOT_USER: 'minio_user'
MINIO_ROOT_PASSWORD: 'minio_password'
MINIO_ADDRESS: ':9000'
MINIO_CONSOLE_ADDRESS: ':9001'
command: minio server /data
上面的方法将为 MinIO 控制台设置一个在端口 9001 上运行的单节点 MinIO 实例,为 MinIO API 设置端口 9000。它还会将容器内的数据文件夹挂载到您机器上的数据文件夹(与 docker-compose.yml 文件位于同一目录中)。如果容器停止,则存储在卷上的所有对象都将保留。启动终端并导航到 docker-compose.yml 文件的目录并执行以下命令
docker-compose up -d
Docker 将从 DockerHub 中提取 MinIO 映像并设置容器。如果没有错误,您应该能够看到您的容器在 Docker Desktop 上运行。

前往localhost:9001,您应该会看到 MinIO 控制台登录屏幕。

恭喜!您刚刚在您的机器上托管了一个 MinIO 实例!登录 MinIO 控制台并熟悉 UI。

如果您有兴趣在分布式模式下设置 MinIO,请在此处阅读更多。
生成访问令牌
要以编程方式从 MinIO 上传/检索文件,我们将使用Python MinIO API。在我们开始编写代码之前,我们必须从 MinIO 控制台生成一个访问令牌。前往 MinIO 控制台并导航至 Identity -> Service Accounts -> Create Service Accounts -> Create。然后,您将看到一个带有您的访问密钥和秘密密钥的模式。写下这些,因为这是唯一一次显示秘密。

接下来,安装 Pythonminio库。然后我们将像这样在 Python 中创建一个 MinIO 客户端,
# Create client with access and secret key
client = Minio('http://localhost:9000/',
'minio_secret_key',
'minio_secret_code',
secure=False)
所有 MinIO API 请求都将通过此客户端进行。请注意,我们没有使用 TLS 进行连接,因此安全参数设置为 False。
创建MinIO存储桶
建立与 MinIO 的连接后,我们可以像这样以编程方式创建存储桶
# check if bucket already exists
found = client.bucket_exists("test_bucket")
# create bucket if it does not exist
if not found:
client.make_bucket("test_bucket")
else:
print("Bucket 'test_bucket' already exists")
我们还可以使用 MinIO 控制台创建存储桶。导航到存储桶 -> 创建存储桶。
从 MinIO 存储桶中检索文件
我们可以像这样检索存储到 MinIO 存储桶中的文件
# retrieve file from MinIO bucket
bucketclient.fget_object("bucket_name", "file_name", "path_to_download_file_including_file_name")
也可以直接从 MinIO Console 下载文件。导航到存储桶->您想要的存储桶->浏览->单击所需的文件->下载。
生成预签名 URL 来服务 MinIO 对象
在某些用例中,我们可能希望通过 URL 提供 MinIO 文件,而不是以编程方式从存储桶中检索文件。我们可以像这样生成一个预签名的 URL,
# generate pre-signed URLs
image_url = client.get_presigned_url("GET", "bucket_name",
"file_name",
expires=timedelta(days=7))
预签名 URL 的最长有效期为 7 天。
对 MinIO 和使用 MinIO Python API 从存储桶上传/检索文件的简要介绍到此结束。如果您有兴趣了解更多有关 MinIO 的信息,我强烈建议您阅读他们的官方文档。感谢您的阅读!这就是所有人!
更多推荐


所有评论(0)