默认情况下,对同一个桶上传同一目录下的同名文件时,新上传的对象将覆盖原有的一对象的多次迭代。
对于有版本控制的桶,一个对象的写操作会导致该对象产生一个具有唯一版本ID 的新版本。 MinIO 标记客户端默认检索对象的“最新”版本。 然后,客户端可以明确选择列出、检索或删除特定的对象版本。
如图所示:开启过后,MinIO默认将检索最新版本
二、版本ID的生成方式
MinIO在写入操作中为每个版本化的对象生成一个唯一且不可变的标识符。 每个对象版本 ID由一个 128 位的固定大小 UUIDv4 组成。UUID 生成足够随机, 以确保在任何环境中高可靠性, 计算上难以猜测,并且不需要集中的注册过程和权威机构来保证唯一性。
MinIO不支持客户端管理版本的 ID 分配。 所有版本 ID 的生成都由 MinIO 服务器进程处理。对于在版本控制禁用或暂停时创建的对象,MinIO 使用一个 null 版本 ID。 您可以通过将 null 作为版本 ID 的一部分来访问或删除这些对象。
三、版本控制和存储容量
启动了版本控制以后,当然对文件的保护性增强了不少,但是如果无限制的开启多个版本,势必会对存储造成负担,大多数情况下,我们并不需要保留太多的版本。
因此,MinIO支持配置对象的生命周期管理,使用MinIO对象生命周期管理来创建基于时间或日期的对象自动转换或过期规则。 对于对象转换,MinIO会自动将对象移动到配置好的远程存储层。对于对象过期,MinIO会自动删除该对象。
MinIO在版本化桶( versioned buckets )上采用 Amazon S3 的行为( S3 behavior )来处理过期规则。 MinIO 为版本化桶(versioned buckets)定义了特定的默认行为:
-
MinIO将过期选项仅应用于当前对象版本,通过创建一个 DeleteMarker,这是版本化删除的正常做法。要使非当前对象版本过期,请在创建过期规则时指定 —noncurrent-expire-days 选项。
-
MinIO不会过期 DeleteMarkers,即使该对象没有其他版本存在也不会过期。要在没有剩余版本的对象上过期删除标记时,请在创建过期规则时指定 —expire-delete-marker 选项。
-
要在大约指定天数后过期一个对象的所有版本,请使用 —expire-all-object-versions 标志与 —expire-days 标志。 这允许在指定天数过去后永久删除对象。
四、如何开启桶版本控制
知道了版本控制的这么多优点,接下来就看如何开启桶版本控制。
在MinIO控制台中,选择 buckets (桶)部分,以访问桶创建和管理功能。您可以使用 search (搜索)栏来过滤列表。每个桶行都有一个 manage (管理)按钮,点击该按钮会打开相应桶的管理视图。
如上图所示,切换到 versioning (版本控制)字段即可在桶上启用版本控制
MinIO的桶版本控制功能为用户提供了一种保护数据免遭意外覆盖或删除的机制。通过启用版本控制,每个对象的写操作都会生成一个带有唯一版本ID的新版本,从而允许用户访问对象的历史迭代对象。MinIO还限制了每个对象的版本数量,最多为10,000个,以避免存储空间的不必要消耗。此外,MinIO支持通过对象生命周期管理规则自动清理旧版本以节省空间
原创文章,作者:速盾高防cdn,如若转载,请注明出处:https://www.sudun.com/ask/78594.html