Storage

Python - bucket.on()

Create a new bucket notification trigger when certain files are created or deleted.

from nitric.resources import bucket

assets = bucket("assets")

accessible_assets = bucket("assets").allow("reading")

# The request will contain the name of the file `key` and the type of event `type`
@assets.on("delete", "*")
def delete_anything(ctx):
  print(f"a file named {ctx.req.key} was deleted")

@assets.on("write", "/images/cat")
def create_cat_image(ctx):
  print(f"A cat image was written")

# If `on` is called with a permissioned bucket, a file will also be provided with the request
@accessible_assets.on("write", "/images/dog")
async def access_dog_file(ctx):
  dog_image = await ctx.req.file.read()

  print(dog_image)

Parameters


notification type required write or delete

The notification type for a triggered event, either on a file write or a file delete.

notification prefix filter required string

The file prefix filter that must match for a triggered event. If multiple filters overlap across notifications then an error will be thrown when registering the resource.

middleware required BucketNotificationMiddleware

The middleware (code) to be triggered by the bucket notification being triggered.


Available trigger types:

write

Run when a file in the bucket is created using: file.write()

delete

Run when a file in the bucket is deleted using: file.delete()

Trigger type cloud mapping

PermissionAWSGCPAzure
writes3:ObjectCreated:*OBJECT_FINALIZEMicrosoft.Storage.BlobCreated
deletes3:ObjectRemoved:*OBJECT_DELETEMicrosoft.Storage.BlobDeleted