JVM - bucket.on()

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

import io.nitric.faas.v0.BucketNotificationType;
import io.nitric.resources.*;
public class Application {
public static void main(String[] args) {
var assets = Nitric.INSTANCE.bucket("assets");
var accessibleAssets = Nitric.INSTANCE.bucket("assets").with(BucketPermission.Read);
// The request will contain the name of the file `key` and the type of event `type`
assets.on(BucketNotificationType.Delete, "*", (ctx) -> {
System.out.println("A file named ${ctx.req.key} was deleted");
return ctx;
});
assets.on(BucketNotificationType.Write, "/images/cat", (ctx) -> {
System.out.println("A cat image was written");
return ctx;
});
// If `on` is called with a permissioned bucket, a file will also be provided with the request
accessibleAssets.on(BucketNotificationType.Write, "/images/dog", (ctx) -> {
var dogImage = ctx.getReq().getFile().read();
System.out.println(dogImage);
return ctx;
});
Nitric.INSTANCE.run();
}
}

Parameters

  • Name
    notificationType
    Required
    Required
    Type
    BucketPermission.Write or BucketPermission.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 List<BucketNotificationMiddleware>
    Description

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

Available trigger types:

BucketPermission.Write

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

BucketPermission.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
Last updated on Jan 14, 2025