文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

批次过期

MinIO 版本新增功能:RELEASE.2023-12-02T10-51-33Z

MinIO批处理框架允许您使用YAML格式的作业定义文件(即“批处理文件”)来创建、管理、监控和执行作业。批处理作业直接在MinIO部署上运行,充分利用服务端处理能力,不受本地运行机器的资源限制。MinIO 客户端.

Theexpire批处理作业应用自动对象过期将行为应用于单个存储桶。 该作业根据提供的配置确定过期资格,与任何已配置的过期规则无关。

行为

对象立即过期

与批处理作业相比,批处理过期会作为批处理作业的一部分立即执行。基于被动扫描器的过期规则应用具体而言,批处理过期操作不会为应用程序I/O让路,可能会影响部署中常规读写操作的性能。

批处理运行时确定过期资格

批次过期处理按存储桶执行,且一次性运行至完成。 该作业在运行时确定过期资格,且不会定期重新扫描或重新检查新对象。

要捕获任何符合过期条件的新对象,请重新运行批处理作业。

仅检查最新对象的过期规则

批处理过期作业仅根据每条批处理过期规则检查每个对象的最新或"当前"版本。

过期批处理作业参考

字段

描述

expire

必需

过期作业类型的顶级字段。

apiVersion

必需

设置为v1.

bucket

必需

指定运行作业的存储桶名称。

prefix

可选

指定运行作业的存储桶前缀。

rules

必需

一个或多个应用于指定对象中对象的过期规则数组bucketprefix(如有)。

rules.[n].type

必需

支持以下两个值之一:

  • object仅适用于不have aDeleteMarker作为当前版本。

  • deleted仅适用于以下对象:doHave aDeleteMarker作为当前版本。

对象删除有关更完整的文档,请参阅DeleteMarker版本化存储桶中的删除操作。

rules.[n].name

可选

指定用于筛选对象的匹配字符串。

支持 glob 风格的通配符 (*, ?).

rules.[n].olderThan

可选

指定对象的年龄以过滤对象。 该规则仅适用于比指定时间单位更早的对象。

例如,72h or 3d选择超过三天的对象。

rules.[n].createdBefore

可选

指定一个RFC3339用于筛选对象的日期和时间。

该规则仅适用于已创建的对象。之前指定的时间戳。

rules.[n].tags

可选

指定一个键值对数组,用于描述筛选对象时使用的对象标签。valueentry 支持 glob 风格的通配符 (*, ?).

例如,以下过滤器将规则限定为仅包含具有匹配标签的对象:

tags:
  - key: archive
    value: True

此密钥与系统不兼容。rules.[n].type: deleted.

rules.[n].metadata

可选

指定一个键值对数组,用于描述对象元数据以筛选对象。value密钥支持通配符样式(*, ?).

例如,以下过滤器仅筛选具有匹配元数据的对象的规则:

metadata:
  - key: content-type
    value: image/*

此密钥与系统不兼容。rules.[n].type: deleted.

rules.[n].size

可选

指定用于过滤对象的对象大小范围。

  • lessThan- 匹配尺寸小于指定数量的对象(例如,MiB, GiB).

  • greaterThan- 匹配尺寸大于指定数量的对象(例如MiB, GiB).

rules.[n].purge.retainVersions

可选

指定应用过期策略时保留的对象版本数量。

默认值为0用于删除所有对象版本(最快)。

notify.endpoint

可选

用于发送通知事件的预定义端点。

notify.token

可选

一个可选的JSON Web令牌(JWT)用于访问notify.endpoint.

retry.attempts

可选

在放弃之前完成批处理作业的尝试次数。

retry.delay

可选

每次尝试之间的等待时间(ms).

示例 YAML 描述expire职位类型

使用mc batch generate创建一个基本的expire用于进一步定制的批处理作业。

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 this date and time in RFC3339 format
      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 this date and time in RFC3339 format
      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