MinIO 批处理框架添加了对过期时间的支持

news2024/11/18 9:49:50

您现在可以使用 MinIO 批处理框架执行 S3 删除操作,以通过单个 API 请求删除大量对象。借助 MinIO 批处理框架,可以快速轻松地在 MinIO 部署中执行重复或批量操作,例如批量复制和批量密钥轮换。MinIO 批处理框架处理所有手动工作,包括管理重试和报告进度。

Batch Expiry 根据指定的条件提供高性能的过期和永久删除。这是一个分布式服务器端删除操作,用于并行执行批量删除。

MinIO 批处理框架无需用户干预,可以安排在非工作时间或系统利用率低时运行。Object Lambda 通知在批处理完成后发出。批处理作业是使用 YAML 定义的,然后定期运行。

添加批量删除功能的理由

信息生命周期管理 (ILM) 旨在管理对象,以便在其生命周期中有效地存储这些对象。这包括基于一组筛选器(条件)的过期对象和分层对象。对于到期,ILM 在与 3 个月到 1 年的到期计划一起使用时最有效。但是,当到期时间非常小时,就会发生反模式。

ILM 在作为后台进程运行的扫描程序上运行。扫描程序会根据负载自动上下限制,因此它不会干扰典型的 S3 API 调用,如 PUT 和 GET。扫描程序针对时间敏感的操作(如响应应用程序)进行了优化。

Batch Expiry 执行并行删除操作,保证快速高效地完成。使用条件格式选择对象,以筛选对象和元数据标记。

批量到期入门

下载并安装 MinIO。记录访问密钥和密钥。

下载并安装 MinIO 客户端。(可选)创建别名以简化对 MinIO Server 的访问。

创建存储桶并启用版本控制。

mc mb myminio/test
mc version enable myminio/test

将一些文件复制到您刚刚创建的存储桶中。文件的内容并不重要,我们只是在学习如何使用批量删除。

创建并定义批量删除(将“test”替换为存储桶的名称):

mc batch generate myminio/test expire

这将创建一个 expiry.yaml 文件,然后您可以编辑该文件以配置复制作业。

此文件(如下所示)包含存储桶名称、前缀名称、筛选条件/标志、通知和重试规则配置。您可以设置规则,按类型、名称(包括通配符)、期限、大小等使对象过期,请参阅下面的输出。

expire:
  apiVersion: v1
  bucket: mybucket # Bucket where this job will expire matching objects from
  prefix: myprefix # (Optional) Prefix under which this job will expire objects matching the rules below.
  rules:
    - type: object  # objects with zero ore more older versions
      name: NAME # match object names that satisfy the wildcard expression.
      olderThan: 70h # match objects older than this value
      createdBefore: "2006-01-02T15:04:05.00Z" # match objects created before "date"
      tags:
        - key: name
          value: pick* # match objects with tag 'name', all values starting with 'pick'
      metadata:
        - key: content-type
          value: image/* # match objects with 'content-type', all values starting with 'image/'
      size:
        lessThan: 10MiB # match objects with size less than this value (e.g. 10MiB)
        greaterThan: 1MiB # match objects with size greater than this value (e.g. 1MiB)
      purge:
          # retainVersions: 0 # (default) delete all versions of the object. This option is the fastest.
          # retainVersions: 5 # keep the latest 5 versions of the object.

    - type: deleted # objects with delete marker as their latest version
      name: NAME # match object names that satisfy the wildcard expression.
      olderThan: 10h # match objects older than this value (e.g. 7d10h31s)
      createdBefore: "2006-01-02T15:04:05.00Z" # match objects created before "date"
      purge:
          # retainVersions: 0 # (default) delete all versions of the object. This option is the fastest.
          # retainVersions: 5 # keep the latest 5 versions of the object including delete markers.

  notify:
    endpoint: https://notify.endpoint # notification endpoint to receive job completion status
    token: Bearer xxxxx # optional authentication token for the notification endpoint

  retry:
    attempts: 10 # number of retries for the job before giving up
    delay: 500ms # least amount of delay between each retry

如您所见,文件中列出的参数支持各种用例。将 YAML 从终端复制到文本编辑器并对其进行自定义,然后在以下步骤中启动它。每个规则都定义过期条件和清除操作。注释使文件一目了然。

例如,要删除存储桶中超过一周的所有对象,请执行以下操作:

...
rules:
    - type: object  # objects with zero ore more older versions
      name: NAME # match object names that satisfy the wildcard expression.
      olderThan: 7d # match objects older than this value
...       	

请注意,尚未为本教程配置通知终结点。配置后,当 Batch Expiry 完成时,通知将在该终结点上可用。

要使所有以字母 C 开头的对象过期,请执行以下操作:

...
rules:
    - type: object  # objects with zero ore more older versions
      name: C*.* # match object names that satisfy the wildcard expression.
      olderThan: 7d # match objects older than this value
...       	

可以同时创建和运行多个 Batch 作业;没有预定义的限制。

使用以下命令启动 Batch Expiry:

mc batch start myminio/ ./expiry.yaml
Successfully started 'expire' job `TEu3LMDvdAhAFZKQ3QtSHr:-1` on '2023-12-28 22:50:05.540096697 +0000 UTC'

您将看到一条消息,指出过期作业已成功启动以及时间。

您还可以检查批处理作业的状态(我运行的作业快速完成):

mc batch status myminio/ TEu3LMDvdAhAFZKQ3QtSHr:-1
mc: Unable to find an active job, attempting to list from previously run jobs
✔ ✔ ✔
JobType:        expire
Objects:        0
FailedObjects:  0
CurrObjName:

Batch Expiry 完成后,您可以列出存储桶内容以验证它是否成功。

mc ls myminio/test

批处理到期

我们将继续构建具有 Batch Expiry 的 MinIO Batch Framework。批处理是自动化操作的强大方法。自动化是规模化的关键推动因素。客户对 Batch Expiry、Batch Replication 和 Batch Key-Rotate 的反馈告诉我们,每个人都喜欢自动化,并希望实现更多自动化。

立即下载 MinIO,了解 MinIO Batch Framework 的实际应用。 有问题吗?

请联系我们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1359101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【自动化测试总结】优点、场景、流程、项目人员构成

一、自动化测试的概念 以程序测试程序,以代码代替思维,以脚本的运行代替手工测试,可以大大提高工作测试的效率。 二、自动化测试的优点 1.回归测试更为方便,可靠。自动化测试最主要的任务和特点,特别是在程序修改比较…

Minitab 20安装包下载及安装教程

Minitab 20下载链接:https://docs.qq.com/doc/DUmNYVGxtUnZkWUpk 1.选中下载好的安装包,鼠标右键解压到”Minitab 20“文件夹 2.选中Setup,鼠标右击选择“以管理员身份运行” 3.点击“下一步” 4.点击“下一步” 5.勾选我接受许可协议中的条…

oracle语法学习

oracle语法学习 1.备份表 create table bd_psndoc_temp as select * from bd_psndoc2.还原表 drop table bd_psndoc; create table bd_psndoc as select * from bd_psndoc_temp3.查询表的前5条记录 select * from bd_psndoc_temp where rownum<54.从一个表中复制所有的列…

stm32学习笔记:TIM-输出比较

四部分讲解内容&#xff0c;本文是第二部分 输出比较主要用于PWM波形的控制电机&#xff08;驱动电机的必要条件&#xff09; 1、定时器基本定时&#xff0c;定一个时间&#xff0c;然后让定时器每隔一段时间产生一个中断&#xff0c;来实现每隔一个固定时间执行一段程序的目…

HarmoryOS Ability页面的生命周期

接入穿山甲SDK app示例&#xff1a; android 数独小游戏 经典数独休闲益智 广告接入示例: Android 个人开发者如何接入广告SDK&#xff0c;实现app流量变现 Ability页面的生命周期 学习前端&#xff0c;第一步最重要的是要理解&#xff0c;页面启动和不同场景下的生命周期的…

老师们居然这样把期末考试成绩发给家长——群发成绩系统的妙用

在现代社会&#xff0c;随着科技的发展和教育的进步&#xff0c;家校之间的沟通方式也在不断更新和完善。其中&#xff0c;群发成绩系统作为一种新型的教育信息化工具&#xff0c;在期末考试成绩的传递方面发挥了重要作用。老师们通过群发成绩系统&#xff0c;将期末考试成绩快…

合合TextIn团队发布 - 文档图像多模态大模型技术发展、探索与应用

合合信息TextIn&#xff08;Text Intelligence&#xff09;团队在2023年12月31日参与了中国图象图形学学会青年科学家会议 - 垂直领域大模型论坛。在会议上&#xff0c;丁凯博士分享了文档图像大模型的思考与探索&#xff0c;完整阐述了多模态大模型在文档图像领域的发展与探索…

在pycharm中执行 os.makedirs 提示用户名或密码不正确

问题&#xff1a;在pycharm中运行脚本&#xff0c;在 \10.0.21.249\share 共享目录下创建目录提示错误 发现&#xff1a;手动在该目录下创建目录没有问题。 解决方法&#xff1a; 切换到cmd 命令行运行该脚本成功创建 猜测&#xff1a;感觉应该是pycharm中使用的用户名和密码存…

医疗设备产生谐波对配电系统危害有哪些

1.对电网的影响 电网中的谐波会增加系统损耗&#xff0c;使设备发热&#xff0c;影响设备使用寿命。此外当并联的无功补偿电容器容抗与系统感抗匹配时&#xff0c;将发生n次并联谐振&#xff0c;造成电容器组的过电压和过电流。当基波频率为时&#xff0c;谐振频率&#xff0c…

【重磅新品】小眼睛科技推出紫光同创盘古系列FPGA开发板套件,盘古200K开发板,紫光同创PG2L200H,Logos2系列

FPGA&#xff0c;即现场可编程门阵列&#xff0c;作为可重构电路芯片&#xff0c;已经成为行业“万能芯片”&#xff0c;在通信系统、数字信息处理、视频图像处理、高速接口设计等方面都有不俗的表现。近几年&#xff0c;随着国家战略支持和产业发展&#xff0c;国产FPGA迎来迅…

LLM(九)| 使用LlamaIndex本地运行Mixtral 8x7大模型

欧洲人工智能巨头Mistral AI最近开源Mixtral 8x7b大模型&#xff0c;是一个“专家混合”模型&#xff0c;由八个70亿参数的模型组成。Mistral AI在一篇博客文章&#xff08;https://mistral.ai/news/mixtral-of-experts/&#xff09;介绍了Mixtral 8x7b&#xff0c;在许多基准上…

代码随想录算法训练营第十五天| 二叉树 513. 找树左下角的值 112. 路径总和 106.从中序与后序遍历序列构造二叉树

513. 找树左下角的值 层序遍历 本题用层序遍历可以直接秒了&#xff0c;直接提取每一层中最左边的元素&#xff08;i0&#xff09;&#xff0c;然后保存到最后一层即可。 class Solution { public:int findBottomLeftValue(TreeNode* root) {queue<TreeNode*> que;int…

【金猿人物展】东方金信董事长兼总经理王伟哲:价值化、智能化驱动下的大数据,治理仍需深化...

‍ 王伟哲 本文由东方金信董事长兼总经理王伟哲撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度趋势人物榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 2023年&#xff0c;数据要素、公共数据授权运营成为热点话题&#xff0c;也是激活数据…

Flume基础知识(二):Flume安装部署

1. Flume 安装部署 1.1 安装地址 &#xff08;1&#xff09;Flume 官网地址&#xff1a;Welcome to Apache Flume — Apache Flume &#xff08;2&#xff09;文档查看地址&#xff1a;Flume 1.11.0 User Guide — Apache Flume &#xff08;3&#xff09;下载地址&#xf…

Halcon计算封闭区域(孔洞)的面积area_holes

Halcon计算封闭区域&#xff08;孔洞&#xff09;的面积 除了可以用area_center 算子计算区域的面积以外&#xff0c;在Halcon中还可以使用area_holes算子计算图像中封闭区域&#xff08;孔洞&#xff09;的面积。该面积指的是区域中孔洞部分包含的像素数。一个区域中可能不只…

深入了解Swagger注解:@ApiModel和@ApiModelProperty实用指南

在现代软件开发中&#xff0c;提供清晰全面的 API 文档 至关重要。ApiModel 和 ApiModelProperty 这样的代码注解在此方面表现出色&#xff0c;通过增强模型及其属性的元数据来丰富文档内容。它们的主要功能是为这些元素命名和描述&#xff0c;使生成的 API 文档更加明确。 Api…

解读 $mash 通证 “Fair Launch” 规则(Staking 玩法解读篇)

Solmash 是 Solana 生态中由社区主导的铭文资产 LaunchPad 平台&#xff0c;该平台旨在为 Solana 原生铭文项目&#xff0c;以及通过其合作伙伴 SoBit 跨链桥桥接到 Solana 的 Bitcoin 生态铭文项目提供更广泛的启动机会。有了 Solmash&#xff0c;将会有更多的 Solana 生态的铭…

静态网页设计——电影推荐网(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV1NK411x7oK/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术&#xff1a;HTMLCSSJS&#xff08;…

C语言编译器(C语言编程软件)完全攻略(第十二部分:VS2010下载地址和安装教程(图解))

介绍常用C语言编译器的安装、配置和使用。 十二、VS2010下载地址和安装教程&#xff08;图解&#xff09; 为了更好地支持 Win7 程序的开发&#xff0c;微软于2010年4月12日发布了 VS2010&#xff0c;它的界面被重新设计&#xff0c;变得更加简洁。需要注意的是&#xff0c;V…

crontab 创建定时任务

1、创建crontab任务 crontab -ecrontab内容 */59 * * * * sh /home/restartAllSlave.sh >> /home/my-restartAllSlave.log 2>&12、创建执行脚本&#xff08;restartAllSlave.sh&#xff09; docker重启如下&#xff1a; docker restart slave_zllrp_gb_1 slav…