The JVM SDK currently only supports legacy versions of Nitric prior to v1. This version is maintained for compatibility with existing projects and not recommended for new projects. New projects should be started using a supported SDK (presented automatically using the `nitric new` command) orget in touch to request an update to the latest version.
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 |