存储桶通知

MinIO 存储桶通知允许管理员在特定对象或存储桶事件发生时,将通知发送到受支持的外部服务。 MinIO 支持与 Amazon S3 Event Notifications 类似的存储桶级和对象级 S3 事件。

支持的通知目标

MinIO 支持将事件通知发布到以下目标:

目标

说明

AMQP (RabbitMQ)

将通知发布到 AMQP 服务,例如 RabbitMQ.

教程参见 将事件发布到 AMQP (RabbitMQ)

MQTT

将通知发布到 MQTT 服务。

教程参见 将事件发布到 MQTT

NATS

将通知发布到 NATS 服务。

教程参见 将事件发布到 NATS

NSQ

将通知发布到 NSQ 服务。

教程参见 将事件发布到 NSQ

Elasticsearch

将通知发布到 Elasticsearch 服务。

教程参见 将事件发布到 Elasticsearch

Kafka

将通知发布到 Kafka 服务。

教程参见 将事件发布到 Kafka

MySQL

将通知发布到 MySQL 服务。

教程参见 将事件发布到 MySQL

PostgreSQL

将通知发布到 PostgreSQL 服务。

教程参见 将事件发布到 PostgreSQL

Redis

将通知发布到 Redis 服务。

教程参见 将事件发布到 Redis

webhook

将通知发布到 Webhook 服务。

教程参见 将事件发布到 Webhook

异步与同步存储桶通知

使用异步传递时,MinIO 会将事件发送到已配置的远程目标,并且在继续处理下一个事件之前 不会 等待响应。 异步存储桶通知优先保证发送速率,但如果远程目标在传输或处理期间出现瞬时问题,则存在部分事件丢失的风险。

使用同步传递时,MinIO 会将事件发送到已配置的远程目标,然后等待远程目标确认已成功接收后,才继续处理下一个事件。 同步存储桶通知优先保证事件可送达,但代价是事件发送速率较慢且队列更容易被填满。

要为 所有已配置的远程目标 启用同步存储桶通知,请使用以下任一设置:

支持的 S3 事件类型

MinIO 存储桶通知与 Amazon S3 Event Notifications 兼容。 本节列出所有受支持的事件。

对象事件

MinIO 支持在以下 S3 对象事件上触发通知:

s3:ObjectAccessed:Get

data

s3:ObjectAccessed:GetLegalHold

data

s3:ObjectAccessed:GetRetention

data

s3:ObjectAccessed:Head

data

s3:ObjectCreated:CompleteMultipartUpload

data

s3:ObjectCreated:Copy

data

s3:ObjectCreated:DeleteTagging

data

s3:ObjectCreated:Post

data

s3:ObjectCreated:Put

data

s3:ObjectCreated:PutLegalHold

data

s3:ObjectCreated:PutRetention

data

s3:ObjectCreated:PutTagging

data

s3:ObjectRemoved:Delete

data

s3:ObjectRemoved:DeleteMarkerCreated

data

指定通配符 * 可选择与某个前缀相关的所有事件:

s3:ObjectAccessed:*

data

选择所有以 s3:ObjectAccessed 为前缀的事件。

s3:ObjectCreated:*

data

选择所有以 s3:ObjectCreated 为前缀的事件。

s3:ObjectRemoved:*

data

选择所有以 s3:ObjectRemoved 为前缀的事件。

复制事件

MinIO 支持在以下 S3 复制事件上触发通知:

s3:Replication:OperationCompletedReplication

data

s3:Replication:OperationFailedReplication

data

s3:Replication:OperationMissedThreshold

data

s3:Replication:OperationNotTracked

data

s3:Replication:OperationReplicatedAfterThreshold

data

指定通配符 * 可选择所有 s3:Replication 事件:

s3:Replication:*

data

ILM 转换事件

MinIO 支持在以下 S3 ILM 转换事件上触发通知:

s3:ObjectRestore:Post

data

s3:ObjectRestore:Completed

data

s3:ObjectTransition:Failed

data

s3:ObjectTransition:Complete

data

指定通配符 * 可选择与某个前缀相关的所有事件:

s3:ObjectTransition:*

data

选择所有以 s3:ObjectTransition 为前缀的事件。

s3:ObjectRestore:*

data

选择所有以 s3:ObjectRestore 为前缀的事件。

Scanner 事件

MinIO 支持在以下 S3 scanner 转换事件上触发通知:

s3:Scanner:ManyVersions

data

Scanner 发现具有超过 1,000 个版本的对象。

s3:Scanner:BigPrefix

data

Scanner 发现具有超过 50,000 个子文件夹的前缀。

全局事件

MinIO 支持在以下全局事件上触发通知。 只能通过 ListenNotification API 监听这些事件:

s3:BucketCreated

data

s3:BucketRemoved

data

负载模式

所有通知负载都使用相同的整体模式。 根据通知类型的不同,某些字段可能会省略或为 null。

{
    "eventVersion": "string",
    "eventSource": "string",
    "awsRegion": "string",
    "eventTime": "string",
    "eventName": "string",
    "userIdentity": {
        "principalId": "string"
    },
    "requestParameters": {
        "key": "value"
    },
    "responseElements": {
        "key": "value"
    },
    "s3": {
        "s3SchemaVersion": "string",
        "configurationId": "string",
        "bucket": {
            "name": "string",
            "ownerIdentity": {
                "principalId": "string"
            },
            "arn": "string"
        },
        "object": {
            "key": "string",
            "size": 10000,
            "eTag": "string",
            "contentType": "string",
            "userMetadata": {
                "key": "string"
            },
            "versionId": "string",
            "sequencer": "string"
        }
    },
    "source": {
        "host": "string",
        "port": "string",
        "userAgent": "string"
    }
}

示例

以下示例是 s3:ObjectCreated:Put 事件的通知:

{
  "EventName": "s3:ObjectCreated:Put",
  "Key": "test-bucket/image.jpg",
  "Records": [
    {
      "eventVersion": "2.0",
      "eventSource": "minio:s3",
      "awsRegion": "",
      "eventTime": "2025-02-06T01:04:31.998Z",
      "eventName": "s3:ObjectCreated:Put",
      "userIdentity": {
        "principalId": "access_key"
      },
      "requestParameters": {
        "principalId": "access_key",
        "region": "",
        "sourceIPAddress": "192.168.1.10"
      },
      "responseElements": {
        "x-amz-id-2": "dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8",
        "x-amz-request-id": "182178E8B36AC9DF",
        "x-minio-deployment-id": "2369dcb4-348b-4d30-8fc9-61ab089ba4bc",
        "x-minio-origin-endpoint": "https://minio.test.svc.cluster.local"
      },
      "s3": {
        "s3SchemaVersion": "1.0",
        "configurationId": "Config",
        "bucket": {
          "name": "test-bucket",
          "ownerIdentity": {
            "principalId": "access_key"
          },
          "arn": "arn:aws:s3:::test-bucket"
        },
        "object": {
          "key": "image.jpg",
          "size": 84452,
          "eTag": "eb52f8e46f60a27a8a1a704e25757f30",
          "contentType": "image/jpeg",
          "userMetadata": {
            "content-type": "image/jpeg"
          },
          "sequencer": "182178E8B3728CAC"
        }
      },
      "source": {
        "host": "192.168.1.10",
        "port": "",
        "userAgent": "MinIO (linux; amd64) minio-go/v7.0.83"
      }
    }
  ]
}
最后修改 August 2, 2026: init commit (8338d5b)

本页部分内容改编自 MinIO 对象存储文档,© 2020–至今 MinIO, Inc.,依据 CC BY 4.0 授权,由 Silo 项目转换与维护。归属与署名

本页为非官方中文翻译。如与英文原文有出入,以英文原文为准。