Example usage for com.amazonaws.services.s3.model S3KeyFilter S3KeyFilter

List of usage examples for com.amazonaws.services.s3.model S3KeyFilter S3KeyFilter

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.model S3KeyFilter S3KeyFilter.

Prototype

public S3KeyFilter() 

Source Link

Usage

From source file:com.tvarit.plugin.S3WarUploadEventToInvokeLambdaMaker.java

License:Open Source License

void make(AmazonS3Client amazonS3Client, String bucketName, Stack stack) {
    final List<Output> outputs = stack.getOutputs();
    final String lambdaFunctionArn = outputs.stream()
            .filter(output -> output.getOutputKey().equals("LambdaFunctionArn")).findFirst().get()
            .getOutputValue();/* www. ja  v a2 s  .com*/
    final BucketNotificationConfiguration notificationConfiguration = new BucketNotificationConfiguration();
    final HashMap<String, NotificationConfiguration> configurations = new HashMap<>();
    final LambdaConfiguration lambdaConfiguration = new LambdaConfiguration(lambdaFunctionArn);
    final HashSet<String> events = new HashSet<>();
    events.add("s3:ObjectCreated:*");
    lambdaConfiguration.setEvents(events);
    final com.amazonaws.services.s3.model.Filter notificationFilter = new com.amazonaws.services.s3.model.Filter();
    final S3KeyFilter s3KeyFilter = new S3KeyFilter();
    notificationFilter.withS3KeyFilter(s3KeyFilter);
    s3KeyFilter.withFilterRules(new FilterRule().withName("suffix").withValue(".war"),
            new FilterRule().withName("prefix").withValue("deployables"));
    lambdaConfiguration.setFilter(notificationFilter);
    configurations.put("warUploaded", lambdaConfiguration);
    notificationConfiguration.setConfigurations(configurations);
    final SetBucketNotificationConfigurationRequest setBucketNotificationConfigurationRequest = new SetBucketNotificationConfigurationRequest(
            bucketName, notificationConfiguration);
    amazonS3Client.setBucketNotificationConfiguration(setBucketNotificationConfigurationRequest);

}