Minio数据模型

发布时间:2024年01月23日

问题

MinIO是一个对象存储解决方案,那么什么是对象呢?

概念

桶: MinIO 对象存储使用 buckets 来组织对象。 存储桶类似于文件系统中的顶级驱动器、文件夹或目录 (/mnt/data or C:\) ,其中每个存储桶可以容纳任意数量的对象。

以顶级驱动器(盘符)作为桶比较好理解,这好比提前设定了一种约定,约定某个盘符下只能存放某种格式或某种业务产生的对象。例如可以约定在 C:\ 下只存放系统相关文件,在 D:\ 下只存放工作相关文件,在 E:\ 下只存放娱乐相关文件。

在现实工作中,使用盘符作为区分,显然过于浪费。因此常常会是由文件夹(目录)来存放符合某一约定的文件。如下,在 D:\A 下创建了 iamghesvideosarticles 。它们此时类似于 MinIO 中的桶。

D:\A
├─images
│  ├─ ...
│  └─ a.png
├─videos
│  ├─ ...
│  └─ b.mp4
└─articles
   ├─ ...
   └─ c.doc

对象: 是二进制数据,例如图像、音频文件、电子表格,甚至是二进制可执行代码。如 App.exe 、user.png、销售单.xls、BigBigWord.mp4 等都是对象。

对象可以直接存储在桶下,之间没有文件夹;也可以不同的文件层次存储在文件夹下。如下,在桶 images 中,a.png 直接存储在桶下。01.png、02.png、03.png 存储在 svc01 文件夹中。

├─images
   ├─svc01
   │  ├─ ... 
   │  ├─ 01.png 
   │  ├─ 02.jpge 
   │  └─ 03.jpge  	
   └─ a.png

在 MinIO 中 , 对象可以精确地表述为 imgaes/a.pngimges/svc01/01.png ,其中 images 为桶,/ /svc01/ 为中间路径, a.png01.png 为对象名。

对象的完整表述中间路径 + 对象名 ,其中 中间路径 可以为空,可以为多层路径 ,如/a/.../n/

中间前缀: 上述的 中间路径 即为中间前缀。中间前缀是对象的一部分,它经常根据业务被定义为不同的层次,用于唯一描述对象。注意 !!!与普通文件系统不一样的是,中间前缀并不会有使用占用内存大小、最后操作时间等信息,只有对象有。

中间前缀只是MinIO存储对象时根据 \ 切分的文件层次,它不是目录或文件夹,只是逻辑存在。
在这里插入图片描述
在这里插入图片描述

操作

就数据模型而言,MinIO 中只有桶和对象两种数据模型,因此MinIO 中所有操作都是围绕它们展开的。桶和对象的操作列表如下:

桶操作(Bucket operations)对象操作(Object operations)
bucketExistscomposeObject
deleteBucketEncryptioncopyObject
deleteBucketLifecycledeleteObjectTags
deleteBucketNotificationdisableObjectLegalHold
deleteBucketPolicydownloadObject
deleteBucketReplicationenableObjectLegalHold
deleteBucketTagsgetObject
deleteObjectLockConfigurationgetObjectRetention
getBucketEncryptiongetObjectTags
getBucketLifecyclegetPresignedObjectUrl
getBucketNotificationgetPresignedPostFormData
getBucketPolicyisObjectLegalHoldEnabled
getBucketReplicationlistObjects
getBucketTagsputObject
getBucketVersioningremoveObject
getObjectLockConfigurationremoveObjects
listBucketsrestoreObject
listenBucketNotificationselectObjectContent
makeBucketsetObjectRetention
removeBucketsetObjectTags
setBucketEncryptionstatObject
setBucketLifecycleuploadObject
setBucketNotificationuploadSnowballObjects
setBucketPolicy
setBucketReplication
setBucketTags
setBucketVersioning
setObjectLockConfiguration

中间前缀并没有特定的操作,因为它是属于对象的一部分,所以在对象操作中,有些操作是可以根据中间前缀来协助查询或操作对象的。

文章来源:https://blog.csdn.net/m0_47406832/article/details/135772606
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。