← Cloudflare R2 / r2 / buckets
Oznámení o událostech
Oznámení o událostech odesílají zprávy do vaší fronta při změně dat ve vašem bucketu R2. Tyto zprávy můžete zpracovávat pomocí přijímající Worker nebo stahování přes HTTP mimo Cloudflare Workers.
Začínáme s oznámeními o událostech
Předpoklady
Než začnete, budete potřebovat:
- Existující bucket R2. Pokud ještě žádný bucket R2 nemáte, přečtěte si Vytváření bucketů.
- Existující fronta. Pokud ještě žádnou frontu nemáte, přečtěte si Vytvořte frontu.
- A přijímající Worker nebo HTTP pull povoleno na vaší frontě Queue.
Povolení oznámení o událostech přes Dashboard
-
V dashboardu Cloudflare přejděte na Objektové úložiště R2 stránce.
Přejděte na Přehled ↗ -
Vyberte bucket, ke kterému chcete přidat pravidlo pro oznámení o události.
-
Přepněte na Nastavení kartě, poté přejděte dolů k Oznámení o událostech kartě.
-
Vyberte Přidání oznámení a vyberte frontu, do které chcete přijímat oznámení, a typ událostí které je spustí.
-
Vyberte Přidání oznámení.
Povolení oznámení o událostech přes Wrangler
Nastavení Wrangler
Nejprve nainstalujte npm ↗. Poté nainstalujte Wrangler, CLI vývojářské platformy.
Povolte oznámení o událostech pro váš bucket R2
Přihlaste se do Wrangleru pomocí wrangler login příkaz. Poté přidejte pravidlo oznámení o události do vašeho bucketu spuštěním r2 bucket notification create příkaz.
npx wrangler r2 bucket notification create <BUCKET_NAME> --event-type <EVENT_TYPE> --queue <QUEUE_NAME>Chcete-li přidat filtrování na základě prefix nebo suffix použijte --prefix nebo --suffix příznak, v tomto pořadí.
# 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>"Úplnější příklad krok za krokem naleznete v Protokolujte a ukládejte události nahrávání v R2 pomocí Event Notifications příklad.
Pravidla oznámení o událostech
Pravidla oznámení o událostech určují typy událostí které spouštějí oznámení a volitelně umožňují filtrování na základě objektu prefix a suffix. Na jeden R2 bucket můžete mít až 100 event notification rules.
Typy událostí
| Typ události | Popis | Spouštěcí akce |
|---|---|---|
object-create |
Aktivuje se, když se vytvoří nové objekty nebo přepíšou existující objekty. |
|
object-delete |
Aktivuje se, když je objekt výslovně odstraněn z bucketu. |
|
Formát zprávy
Konzumenti fronty dostávají oznámení ve formátu Zprávy. Následuje příklad těla zprávy, kterou obdrží consumer 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"
}
}Vlastnosti
| Vlastnost | Typ | Popis |
|---|---|---|
account |
Řetězec | ID účtu Cloudflare, se kterým je událost spojena. |
action |
Řetězec | Typ akce, která vyvolala oznámení o události. Mezi příklady akcí patří: PutObject, CopyObject, CompleteMultipartUpload, DeleteObject. |
bucket |
Řetězec | Název bucketu, ve kterém k události došlo. |
object |
Objekt | Vnořený objekt obsahující podrobnosti o objektu, kterého se událost týká. |
object.key |
Řetězec | Klíč (neboli název) objektu v rámci bucketu. |
object.size |
Číslo | Velikost objektu v bajtech. Poznámka: není přítomna u událostí object-delete. |
object.eTag |
Řetězec | Značka entity (eTag) objektu. Poznámka: není přítomna u událostí odstranění objektu. |
eventTime |
Řetězec | Čas, kdy došlo k akci, která událost vyvolala. |
copySource |
Objekt | Vnořený objekt obsahující podrobnosti o zdroji zkopírovaného objektu. Poznámka: přítomen pouze u událostí vyvolaných CopyObject. |
copySource.bucket |
Řetězec | Bucket, který obsahoval zdrojový objekt. |
copySource.object |
Řetězec | Název zdrojového objektu. |
Poznámky
- Queues propustnost zpráv na frontu je v současnosti 5,000 zpráv za sekundu. Pokud vaše úlohy generují více než 5,000 oznámení za sekundu, doporučujeme rozdělit pravidla oznámení mezi více front.
- Pravidla bez prefixu/suffixu platí pro všechny objekty v bucketu.
- Překrývající se nebo protichůdná pravidla, která by mohla pro stejnou událost spustit více oznámení, nejsou povolena. Pokud máte například
object-create(neboPutObjectakce) bez prefixu a sufixu, poté přidáním dalšíhoobject-create(neboPutObjectakce) s prefixem podobnýmimages/mohlo vyvolat více než jedno oznámení pro jedno nahrání, což je neplatné.