Path: blob/master/code_examples/java_examples/S3Examples/EnableNotificationOnABucket.java
4084 views
// Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.1// SPDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-s3-developer-guide/blob/master/LICENSE-SAMPLECODE.)23import java.io.IOException;4import java.util.EnumSet;56import com.amazonaws.AmazonServiceException;7import com.amazonaws.SdkClientException;8import com.amazonaws.auth.profile.ProfileCredentialsProvider;9import com.amazonaws.services.s3.AmazonS3;10import com.amazonaws.services.s3.AmazonS3ClientBuilder;11import com.amazonaws.services.s3.model.BucketNotificationConfiguration;12import com.amazonaws.services.s3.model.TopicConfiguration;13import com.amazonaws.services.s3.model.QueueConfiguration;14import com.amazonaws.services.s3.model.S3Event;15import com.amazonaws.services.s3.model.SetBucketNotificationConfigurationRequest;1617public class EnableNotificationOnABucket {1819public static void main(String[] args) throws IOException {20String bucketName = "*** Bucket name ***";21String clientRegion = "*** Client region ***";22String snsTopicARN = "*** SNS Topic ARN ***";23String sqsQueueARN = "*** SQS Queue ARN ***";2425try {26AmazonS3 s3Client = AmazonS3ClientBuilder.standard()27.withCredentials(new ProfileCredentialsProvider())28.withRegion(clientRegion)29.build();30BucketNotificationConfiguration notificationConfiguration = new BucketNotificationConfiguration();3132// Add an SNS topic notification.33notificationConfiguration.addConfiguration("snsTopicConfig",34new TopicConfiguration(snsTopicARN, EnumSet.of(S3Event.ObjectCreated)));3536// Add an SQS queue notification.37notificationConfiguration.addConfiguration("sqsQueueConfig",38new QueueConfiguration(sqsQueueARN, EnumSet.of(S3Event.ObjectCreated)));3940// Create the notification configuration request and set the bucket notification configuration.41SetBucketNotificationConfigurationRequest request = new SetBucketNotificationConfigurationRequest(42bucketName, notificationConfiguration);43s3Client.setBucketNotificationConfiguration(request);44}45catch(AmazonServiceException e) {46// The call was transmitted successfully, but Amazon S3 couldn't process47// it, so it returned an error response.48e.printStackTrace();49}50catch(SdkClientException e) {51// Amazon S3 couldn't be contacted for a response, or the client52// couldn't parse the response from Amazon S3.53e.printStackTrace();54}55}56}5758