Node.js - bucket.on()

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

import { bucket } from '@nitric/sdk'

const assets = bucket('assets')

const accessibleAssets = bucket('assets').for('reading')

// The request will contain the name of the file `key` and the type of event `type`
assets.on('delete', '*', (ctx) => {
  console.log(`A file named ${ctx.req.key} was deleted`)
})

assets.on('write', '/images/cat', (ctx) => {
  console.log('A cat image was written')
})

// If `on` is called with a permissioned bucket, a file will also be provided with the request
accessibleAssets.on('write', '/images/dog', async (ctx) => {
  const dogImage = await ctx.req.file.read()

  console.log(dogImage)
})

Parameters

  • Name
    notificationType
    Required
    Required
    Type
    write or delete
    Description

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

  • Name
    notificationPrefixFilter
    Required
    Required
    Type
    string
    Description

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

  • Name
    middleware
    Required
    Required
    Type
    BucketNotificationMiddleware or BucketNotificationMiddleware[]
    Description

    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