有了 minio 不用阿里云和七牛云这些第三方服务也能自己实现一个图床!
MinIO 是一个高性能的对象存储服务,它是用 Go 语言编写的,并且是开源的。它与 Amazon S3(Simple Storage Service)兼容,提供了一个简单易用的界面来存储大量的非结构化数据,如图片、视频、日志文件、备份数据和容器/虚拟机镜像。MinIO 可以在多种环境中部署,包括私有云、公有云和多云环境,以及支持边缘计算配置。
在日常中,我们比较多使用的是阿里云的 OSS 服务,但是我们用来学习的又不想花钱和配置这些麻烦的东西,那么我们就可以使用到 minio 来配置了。
Minio 和阿里云 OSS 的区别
MinIO 和阿里云的对象存储服务(OSS)都是面向非结构化数据存储的对象存储解决方案。这两者在功能和设计上有一些相似之处,尤其是在它们提供的核心功能方面。以下是 MinIO 和阿里云 OSS 的一些主要相似点:
-
对象存储模型:两者都采用了对象存储模型,用户可以存储任何形式的非结构化数据,如照片、视频文件、日志文件和备份数据等。在这种模型中,数据被存储为带有元数据和唯一标识符的对象。
-
S3 兼容性:MinIO 和阿里云 OSS 都提供与 Amazon S3 兼容的 API。这意味着开发者可以使用标准的 S3 工具和库来与这两个服务交互,实现应用程序的快速迁移和部署。
-
分布式架构:两者均支持分布式存储,可以在多个数据中心或服务器上分布数据。这种架构增加了数据的冗余和可用性,同时也提高了容错能力。
-
横向扩展:MinIO 和阿里云 OSS 都可以进行横向扩展以支持更多的数据和更高的并发请求。用户可以根据需要增加更多的存储容量和处理能力。
-
安全性特性:两者都提供了包括数据加密(在传输和静态数据中)、访问控制和认证机制等安全特性。这些功能确保了存储数据的安全性和隐私性。
-
高可用性和持久性:MinIO 和阿里云 OSS 都设计有高可用性和数据持久性。即使在硬件故障或网络中断的情况下,也能确保数据不丢失并且可靠地存储。
-
多租户能力:虽然 MinIO 更多地看到在私有部署中单租户使用,但它也支持多租户配置,类似于阿里云 OSS 在云环境中提供的多租户能力。
MinIO 和阿里云 OSS 在功能上有很多相似之处,主要差异在于部署模型和成本结构上。MinIO 更多地被用于私有云或混合云环境,而阿里云 OSS 作为公有云服务,主要面向使用阿里云的用户。 MinIO 提供了一种更灵活的选项,尤其是对于那些希望在自己的基础设施上运行对象存储服务的企业或组织。
如何在 docker 上创建一个 Minio 服务
接下来我们将使用 docker-compose 的方式来创建一个 Minio 服务,具体配置如下所示:
version: "3.9"
services:
minio:
image: minio/minio
volumes:
- data:/data
- config:/root/.minio
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: moment
MINIO_ROOT_PASSWORD: moment666
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
volumes:
data:
config:
在上面的这些配置中,我们定义了两个端口,它们分别是 9000 和 9001,将容器的 9000 端口映射到主机的 9000 端口,这是 MinIO API 的默认端口。同样,将容器的 9001 端口映射到主机的 9001 端口,用于访问 MinIO 的管理控制台。
在文件的底部定义了 data 和 config 这两个卷。这些卷是持久化存储,用于保持 MinIO 的数据和配置,即使容器被重新启动,数据和配置也不会丢失。
这个配置文件为运行 MinIO 服务提供了一个完整的、具有健康检查、持久化存储和安全凭据的环境。
配置完成之后我们在终端上面执行如下命令来启动 docker:
docker-compose up -d
当我们访问 http://localhost:9001/
的时候你会看到这样的界面则表示我们的 Minio 服务创建成功了:
成功进入之后,我们来创建一个桶,这个时候需要我们点击 create Bucket:
创建完成之后我们要配置一下权限,不然我们之后可能无法访问,如下图所示:
到这里我们就创建一个 minio 服务,之后我们可以在不同的后端语言里面实现接入。
总结
MinIO 以其性能、可扩展性和 S3 兼容性在开源和企业环境中非常受欢迎。无论是作为独立的存储解决方案还是集成到更大的数据管理和处理框架中,MinIO 都提供了一个强大的工具。
通过这个服务,我们就在学习阶段就可以不用花钱去买阿里云 oss 和七牛云那些服务了,而且这些数据存在自己的服务器上面也安全。
转载自:https://juejin.cn/post/7362799963322105866