1. 前言
华为云OBS 和其他产商的OSS 都是一个东西,对象存储
ACL(Access Control List ): 访问控制列表(ACL)
本段文章来源于华为云OBS,因为都是S3标准的对象存储,所以很多概念和Minio是相通的。
1.1 为什么要进行访问权限控制(华为OBS)
为保证存储在SSO中数据的安全性,SSO资源(桶和对象)默认为私有,只有资源拥有者可以访问。
华为云OBS 和其他产商的OSS 都是一个东西,对象存储
ACL(Access Control List ): 访问控制列表(ACL)
本段文章来源于华为云OBS,因为都是S3标准的对象存储,所以很多概念和Minio是相通的。
为保证存储在SSO中数据的安全性,SSO资源(桶和对象)默认为私有,只有资源拥有者可以访问。
在之前,我们实现了常用的上传下载、分片上传、秒传等功能,实际一个文件存储管理系统,这些远远还是不够的,比如断点续传。
可以参考阿里的文档,是怎么实现这些功能的。
通过断点续传上传的方式将文件上传到OSS前,您可以指定断点记录点。上传过程中,如果出现网络异常或程序崩溃导致文件上传失败时,将从断点记录处继续上传未上传完成的部分。
官方文档
minio-java
Minio提供了多种语言的SDK,比如java、go、python等。JAVA开发平台可以选择JS和java SDK,也就是前端和后端都可以直接集成minio。
MinIO是采用Golang实现的高性能对象存储系统,基于Apache License V2.0进行开源,适用于海量非结构化数据存储,如图片、视频、镜像等。MinIO以极简主义为指导进行设计,追求极致的维护精简性和卓越的读写性能表现。据MinIO官方数据,在标准硬件上,MinIO的读写速率可分别高达183GB/s和171GB/s。
MinIO支持以单点、分布式集群等方式进行部署。其中,MinIO分布式集群是指在多个服务器节点均部署MinIO服务,并将其组建为分布式存储集群,对外提供标准S3接口以进行统一访问,其架构如图2-1所示。
文件、块和对象是三种以不同的方式来保存、整理和呈现数据的存储格式。这些格式各有各的功能和限制。
文件存储会以文件和文件夹的层次结构来整理和呈现数据;
块存储会将数据拆分到任意划分且大小相同的卷中;
对象存储会管理数据并将其链接至关联的元数据。
元数据包括 account(用户), bucket, bucket index等信息
Minio使用纠删码
erasure code
和校验和checksum
来保护数据免受硬件故障和无声数据损坏。 即便您丢失一半数量(N/2)的硬盘,您仍然可以恢复数据。
erasure code
?纠删码是一种恢复丢失和损坏数据的数学算法, Minio采用Reed-Solomon code将对象拆分成N/2数据和N/2 奇偶校验块。 这就意味着如果是12块盘,一个对象会被分成6个数据块、6个奇偶校验块,你可以丢失任意6块盘(不管其是存放的数据块还是奇偶校验块),你仍可以从剩下的盘中的数据进行恢复
MinIO部署默认以HTTP方式对外提供服务,如果我们需要支持https 应该怎么做呢?
主要思路就是
如何生成https证书:使用acme.sh生成免费的SSL证书
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非 常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而 一个对象文件可以是任意大小,从几kb到最大5T不等。 MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。
一个对象存储服务,适合存储非结构化数据。如图片、视频、日志文件等
文件、块和对象是三种以不同的方式来保存、整理和呈现数据的存储格式。这些格式各有各的功能和限制。
文件存储:
会以文件和文件夹的层次结构来整理和呈现数据;
块存储会:
将数据拆分到任意划分且大小相同的卷中;
对象存储:
会管理数据并将其链接至关联的元数据。
元数据包括 account(用户), bucket, bucket index, Object 的 tag等信息
利用多版本控制,您可以在一个桶中保留多个版本的对象,使您更方便地检索和还原各个版本,在意外操作或应用程序故障时快速恢复数据。
默认情况下,新创建的桶不会开启多版本功能,向同一个桶上传同名的对象时,新上传的对象将覆盖原有的对象。
版本说明:
版本 | 描述 |
---|---|
最新版本 | 多版本控制开启后,同名对象多次操作,每次操作都会对应一个版本号进行保存。最后一次操作保存的版本号,为最新版本。 |
历史版本 | 多版本控制开启后,同名对象多次操作,每次操作都会对应一个版本号进行保存。除最后一次外的,其他保存的版本号为历史版本。 |