JVM is in development for v1. Interested in contributing or chatting with us?Get in touch!
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
| Permission | AWS | GCP | Azure | 
|---|---|---|---|
| write | s3:ObjectCreated:* | OBJECT_FINALIZE | Microsoft.Storage.BlobCreated | 
| delete | s3:ObjectRemoved:* | OBJECT_DELETE | Microsoft.Storage.BlobDeleted |