#Cross-provider S3 event notifications with minio-go?

2 messages · Page 1 of 1 (latest)

mint mountain
#

I am extremely confused about how notifications work. Looking at various platforms (AWS S3, Cloudflare R2, Backblaze, MinIO) they all support different methods of event notifications. Is there a single method that will work on most s3 compatible providers?

mint mountain
#

Webhook seems to be most common but they all give different responses. E.G. Backblaze

{
  "events": [
    {
      "accountId": "e85c6a500333",
      "bucketId": "aea8c5bc362ae55070130333",
      "bucketName": "mySampleBucket",
      "eventId": "ba9a8e4eacda8b4b7d23a0ec1f04046342c319f3c608903e794c45a5b57184be",
      "eventTimestamp": 1684793309123,
      "eventType": "b2:ObjectCreated:Upload",
      "eventVersion": 1,
      "matchedRuleName": "mySampleRule1",
      "objectName": "objectName.txt",
      "objectSize": 10495842,
      "objectVersionId": "4_zaea8c5bc362a..."
    }
  ]
}

and minio

{
  "s3": {
    "bucket": {
      "arn": "arn:aws:s3:::mybucket",
      "name": "mybucket",
      "ownerIdentity": {
        "principalId": "minio"
      }
    },
    "object": {
      "key": "cmd.md",
      "eTag": "d8e8fca2dc0f896fd7cb4cb0031ba249",
      "size": 5,
      "sequencer": "17A9AB4FA93B35D8",
      "contentType": "text/markdown",
      "userMetadata": {
        "content-type": "text/markdown"
      }
    },
    "configurationId": "Config",
    "s3SchemaVersion": "1.0"
  },
  "source": {
    "host": "127.0.0.1",
    "port": "",
    "userAgent": "MinIO (linux; arm64) minio-go/v7.0.66 mc/RELEASE.2024-01-11T05-49-32Z"
  },
  "awsRegion": "",
  "eventName": "s3:ObjectCreated:Put",
  "eventTime": "2024-01-12T17:58:12.569Z",
  "eventSource": "minio:s3",
  "eventVersion": "2.0",
  "userIdentity": {
    "principalId": "minio"
  },
  "responseElements": {
    "x-amz-id-2": "dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8",
    "x-amz-request-id": "17A9AB4FA9328C8F",
    "x-minio-deployment-id": "c3642fb7-ab2a-44a0-96cb-246bf4d18e84",
    "x-minio-origin-endpoint": "http://172.18.0.3:9000"
  },
  "requestParameters": {
    "region": "",
    "principalId": "minio",
    "sourceIPAddress": "127.0.0.1"
  }
}