Go - Bucket.On()

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

import (
"context"
"fmt"
"github.com/nitrictech/go-sdk/nitric"
"github.com/nitrictech/go-sdk/nitric/storage"
)
func main() {
assets := nitric.NewBucket("assets")
readableAssets := nitric.NewBucket("assets").Allow(storage.BucketRead)
assets.On(storage.DeleteNotification, "*", func(ctx *storage.Ctx) {
fmt.Printf("a file named %s was deleted\n", ctx.Request.Key())
})
assets.On(storage.WriteNotification, "/images/cat", func(ctx *storage.Ctx) {
fmt.Printf("a cat image was written")
})
assets.On(storage.WriteNotification, "/images/dog", func(ctx *storage.Ctx) error {
dogImage, err := readableAssets.Read(context.TODO(), ctx.Request.Key())
if err != nil {
return err
}
fmt.Println(dogImage)
return nil
})
nitric.Run()
}

Parameters

  • Name
    notificationType
    Required
    Required
    Type
    WriteNotification or DeleteNotification
    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
    handler
    Required
    Required
    Type
    interface{}
    Description

    The callback function to be triggered when bucket events occur.

Available trigger types

WriteNotification

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

DeleteNotification

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

Trigger type cloud mapping

PermissionAWSGCPAzure
writes3:ObjectCreated:*OBJECT_FINALIZEMicrosoft.Storage.BlobCreated
deletes3:ObjectRemoved:*OBJECT_DELETEMicrosoft.Storage.BlobDeleted
Last updated on Oct 17, 2024