INTEGRITY Документация

Уведомления о событиях

Уведомления о событиях отправляют сообщения в вашу очередь при изменении данных в вашем бакете R2. Эти сообщения можно получать с помощью Worker-получатель или загрузка по HTTP за пределами Cloudflare Workers.

Начало работы с уведомлениями о событиях

Предварительные требования

Прежде чем начать, вам потребуется:

Включение уведомлений о событиях через Dashboard

  1. На панели управления Cloudflare перейдите к разделу Объектное хранилище R2 страницу.

    Перейдите в Обзор ↗
  2. Выберите бакет, для которого нужно добавить правило уведомлений о событиях.

  3. Перейдите на вкладку Настройки вкладке, затем прокрутите вниз до Уведомления о событиях карточка.

  4. Выберите Добавление уведомления и выберите очередь, в которую хотите получать уведомления, и тип событий которые будут их запускать.

  5. Выберите Добавление уведомления.

Включение уведомлений о событиях через Wrangler

Настройка Wrangler

Для начала установите npm. Затем установите Wrangler, интерфейс командной строки платформы разработчика.

Включение уведомлений о событиях для бакета R2

Войдите в Wrangler с помощью wrangler login команда. Затем добавьте правило уведомлений о событиях к вашему бакету, выполнив r2 bucket notification create команда.

npx wrangler r2 bucket notification create <BUCKET_NAME> --event-type <EVENT_TYPE> --queue <QUEUE_NAME>

Чтобы добавить фильтрацию на основе prefix или suffix используйте --prefix или --suffix флаг соответственно.

# Filter using prefix
$ npx wrangler r2 bucket notification create <BUCKET_NAME> --event-type <EVENT_TYPE> --queue <QUEUE_NAME> --prefix "<PREFIX_VALUE>"

# Filter using suffix
$ npx wrangler r2 bucket notification create <BUCKET_NAME> --event-type <EVENT_TYPE> --queue <QUEUE_NAME> --suffix "<SUFFIX_VALUE>"

# Filter using prefix and suffix. Both the conditions will be used for filtering
$ npx wrangler r2 bucket notification create <BUCKET_NAME> --event-type <EVENT_TYPE> --queue <QUEUE_NAME> --prefix "<PREFIX_VALUE>" --suffix "<SUFFIX_VALUE>"

Более полный пошаговый пример см. в Регистрируйте и сохраняйте события загрузки в R2 с помощью уведомлений о событиях пример.

Правила уведомлений о событиях

Правила уведомлений о событиях определяют типы событий которые запускают уведомления и при необходимости позволяют фильтровать по prefix и suffix. Для одного бакета R2 можно настроить до 100 правил уведомлений о событиях.

Типы событий

Тип события Описание Действия триггеров
object-create Срабатывает при создании новых объектов или перезаписи существующих.
  • PutObject
  • CopyObject
  • CompleteMultipartUpload
object-delete Срабатывает при явном удалении объекта из бакета.
  • DeleteObject
  • LifecycleDeletion

Формат сообщения

Получатели Queue получают уведомления в виде Сообщения. Ниже приведён пример тела сообщения, которое получит Worker-получатель:

{
	"account": "3f4b7e3dcab231cbfdaa90a6a28bd548",
	"action": "CopyObject",
	"bucket": "my-bucket",
	"object": {
		"key": "my-new-object",
		"size": 65536,
		"eTag": "c846ff7a18f28c2e262116d6e8719ef0"
	},
	"eventTime": "2024-05-24T19:36:44.379Z",
	"copySource": {
		"bucket": "my-bucket",
		"object": "my-original-object"
	}
}

Свойства

Свойство Тип Описание
account String Cloudflare account ID, связанный с этим событием.
action String Тип действия, которое вызвало уведомление о событии. Примеры действий: PutObject, CopyObject, CompleteMultipartUpload, DeleteObject.
bucket String Имя бакета, в котором произошло событие.
object Объект Вложенный объект с данными об объекте, связанном с событием.
object.key String Ключ (или имя) объекта в бакете.
object.size Число Размер объекта в байтах. Примечание: отсутствует для событий удаления объекта.
object.eTag String Тег объекта (eTag). Примечание: отсутствует для событий удаления объекта.
eventTime String Время, когда произошло действие, вызвавшее событие.
copySource Объект Вложенный объект с данными об источнике скопированного объекта. Примечание: присутствует только для событий, вызванных CopyObject.
copySource.bucket String Бакет, в котором находился исходный объект.
copySource.object String Имя исходного объекта.

Примечания