This email was sent with "
+ "Amazon com.waynecovell.awsJavaSamples.V1SDK.SES using the "
+ "AWS SDK for Java";
private static final String nonHtmlClientBody = "This email was sent through Amazon com.waynecovell.awsJavaSamples.V1SDK.SES "
+ "using the AWS SDK for Java.";
public static void main(String[] args) throws IOException {
try {
AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(AWSSharedUtils.creds))
.withRegion(AWSSharedUtils.region).build();
SendEmailRequest request = new SendEmailRequest()
.withDestination(
new Destination().withToAddresses(toAddress))
.withMessage(new Message()
.withBody(new Body()
.withHtml(new Content()
.withCharset("UTF-8").withData(htmlBody))
.withText(new Content()
.withCharset("UTF-8").withData(nonHtmlClientBody)))
.withSubject(new Content()
.withCharset("UTF-8").withData(subject)))
.withSource(fromAddress)
.withConfigurationSetName(configSet);
client.sendEmail(request);
System.out.println("Email sent!");
} catch (Exception ex) {
System.out.println("The email was not sent. Error message: "
+ ex.getMessage());
}
}
}
================================================
FILE: src/main/java/com/wazcov/awsJavaSamples/V1SDK/SM/SM_Start.java
================================================
package com.wazcov.awsJavaSamples.V1SDK.SM;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.services.secretsmanager.AWSSecretsManager;
import com.amazonaws.services.secretsmanager.AWSSecretsManagerClientBuilder;
import com.amazonaws.services.secretsmanager.model.CreateSecretRequest;
import com.amazonaws.services.secretsmanager.model.GetSecretValueRequest;
import com.amazonaws.services.secretsmanager.model.GetSecretValueResult;
import com.amazonaws.services.secretsmanager.model.ListSecretsRequest;
import com.amazonaws.services.secretsmanager.model.ListSecretsResult;
import com.amazonaws.util.IOUtils;
import com.wazcov.awsJavaSamples.AwsShared.AWSSharedUtils;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.X509EncodedKeySpec;
public class SM_Start {
private static final String region = "us-east-2";
private static AWSSecretsManager client = null;
private static final String STRING_KEY_NAME = "StringKeyX";
private static final String BINARY_FILE_KEY_NAME = "FileKeyX";
public static void main(String[] args) {
SM_Start secretsManagerApplication = new SM_Start();
try {
secretsManagerApplication.setupSecretManager();
//Example Storing Key String
secretsManagerApplication.createSecretString();
secretsManagerApplication.getSecretStringValue();
//Example Storing Key Binary
secretsManagerApplication.createSecretFromFile();
secretsManagerApplication.getSecretFileValue();
} catch (Exception e) {
e.printStackTrace();
}
}
private void setupSecretManager() {
client = AWSSecretsManagerClientBuilder.standard()
.withRegion(region)
.withCredentials(new AWSStaticCredentialsProvider(AWSSharedUtils.creds))
.build();
}
private void createSecretString() {
CreateSecretRequest createSecretRequest = new CreateSecretRequest().withName(STRING_KEY_NAME).withSecretString("Hello World");
client.createSecret(createSecretRequest);
System.out.println("Stored Secret String");
}
private void getSecretStringValue() {
ListSecretsRequest listSecretsRequest = new ListSecretsRequest();
ListSecretsResult secretsResult = client.listSecrets(listSecretsRequest);
secretsResult.getSecretList().forEach(e -> System.out.println("Retrieved: " + e.getName()));
GetSecretValueRequest getSecretValueRequest = new GetSecretValueRequest().withSecretId(STRING_KEY_NAME);
GetSecretValueResult secretValueResult = client.getSecretValue(getSecretValueRequest);
String secretString = secretValueResult.getSecretString();
System.out.println("Retrieved String Value: " + secretString);
}
private void createSecretFromFile() throws Exception {
InputStream publicKeyStream = this.getClass().getClassLoader().getResourceAsStream("publicKeyFile");
byte[] targetArray = IOUtils.toByteArray(publicKeyStream);
ByteBuffer secretBinaryByteBuffer = ByteBuffer.wrap(targetArray);
CreateSecretRequest createSecretRequest = new CreateSecretRequest().withName(BINARY_FILE_KEY_NAME).withSecretBinary(secretBinaryByteBuffer);
client.createSecret(createSecretRequest);
System.out.println("Stored Secret File");
}
private void getSecretFileValue() throws Exception {
GetSecretValueRequest getSecretValueRequest = new GetSecretValueRequest().withSecretId(BINARY_FILE_KEY_NAME);
GetSecretValueResult secretValueResult = client.getSecretValue(getSecretValueRequest);
ByteBuffer secretBinaryByteBuffer = secretValueResult.getSecretBinary();
byte[] bytes = new byte[secretBinaryByteBuffer.capacity()];
secretBinaryByteBuffer.get(bytes, 0, bytes.length);
X509EncodedKeySpec spec = new X509EncodedKeySpec(bytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey binary = kf.generatePublic(spec);
System.out.println("Retrieved Secret Binary:");
System.out.println(binary.toString());
}
}
================================================
FILE: src/main/java/com/wazcov/awsJavaSamples/V1SDK/SNS/SNS_Start.java
================================================
package com.wazcov.awsJavaSamples.V1SDK.SNS;
import com.wazcov.awsJavaSamples.AwsShared.AWSSharedUtils;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.sns.AmazonSNS;
import com.amazonaws.services.sns.AmazonSNSClient;
import com.amazonaws.services.sns.model.CreateTopicRequest;
import com.amazonaws.services.sns.model.CreateTopicResult;
import com.amazonaws.services.sns.model.PublishRequest;
import com.amazonaws.services.sns.model.PublishResult;
import com.amazonaws.services.sns.model.SubscribeRequest;
public class SNS_Start {
/*
To Use AWS com.waynecovell.awsJavaSamples.V1SDK.SNS, you need to ensure you have the following:
- A user created in AWS IAM
- Appropriate user, region, etc details updated in in AWSSharedUtils
- AmazonSNSFullAccess Group assigned to that user in IAM
- A valid email address, specified below (after subscribing you have to confirm with your email)
Create A Topic method shows how one could create a topic programmatically, however you could create
this in the AWS UI and hard-code it.
*/
private static AmazonSNS amazonSNSClient = null;
public static void main(String[] args) {
openSNSConnection();
String arn = createATopic();
subscribeToATopic(arn);
publishToATopic(arn);
}
public static void openSNSConnection() {
BasicAWSCredentials creds = AWSSharedUtils.creds;
amazonSNSClient = AmazonSNSClient.builder()
.withCredentials(new AWSStaticCredentialsProvider(creds))
.withRegion(AWSSharedUtils.region)
.build();
}
public static String createATopic() {
final CreateTopicRequest createTopicRequest = new CreateTopicRequest("MyTopic");
final CreateTopicResult createTopicResponse = amazonSNSClient.createTopic(createTopicRequest);
System.out.println("TopicArn:" + createTopicResponse.getTopicArn());
System.out.println("CreateTopicRequest: " + amazonSNSClient.getCachedResponseMetadata(createTopicRequest));
return createTopicResponse.getTopicArn();
}
public static void subscribeToATopic(String topicArn) {
final SubscribeRequest subscribeRequest = new SubscribeRequest(topicArn, "email", AWSSharedUtils.receiverEmailAddress);
amazonSNSClient.subscribe(subscribeRequest);
System.out.println("SubscribeRequest: " + amazonSNSClient.getCachedResponseMetadata(subscribeRequest));
System.out.println("To confirm the subscription, check your email.");
}
public static void publishToATopic(String topicArn) {
try {
Thread.sleep(30000); //You have 30 seconds to confirm the subscription in your email account
}catch(InterruptedException ie){}
final String msg = "If you receive this message, publishing a message to an Amazon com.waynecovell.awsJavaSamples.V1SDK.SNS topic works.";
final PublishRequest publishRequest = new PublishRequest(topicArn, msg);
final PublishResult publishResponse = amazonSNSClient.publish(publishRequest);
System.out.println("MessageId: " + publishResponse.getMessageId());
//Now check your email for a notification
}
}
================================================
FILE: src/main/java/com/wazcov/awsJavaSamples/V1SDK/SQS/SQS_Start.java
================================================
package com.wazcov.awsJavaSamples.V1SDK.SQS;
import com.wazcov.awsJavaSamples.AwsShared.AWSSharedUtils;
import com.amazon.sqs.javamessaging.ProviderConfiguration;
import com.amazon.sqs.javamessaging.SQSConnection;
import com.amazon.sqs.javamessaging.SQSConnectionFactory;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
public class SQS_Start {
/*
To Use AWS com.waynecovell.awsJavaSamples.V1SDK.SQS, you need to ensure you have the following:
- A user created in AWS IAM
- Appropriate user, region, etc details updated in in AWSSharedUtils
- AmazonSQSFullAccess Group assigned to that user in IAM
- A queue created in the UI for com.waynecovell.awsJavaSamples.V1SDK.SQS, with the same name used below
- A region specified in AWSSharedUtils that matches the region you created the aformetnioned queue in, in AWS UI.
*/
private static SQSConnection connection = null;
private static Session session = null;
private static Queue queue = null;
public static void main(String[] args) {
try {
openQueueConnection();
sendMessageOnAQueue();
receiveMessagesFromAQueue();
closeQueueConnection();
}
catch(Exception e) {
System.out.println(e.toString());
}
}
private static void closeQueueConnection() throws Exception {
connection.close();
}
public static void receiveMessagesFromAQueue() throws Exception {
MessageConsumer consumer = session.createConsumer(queue);
connection.start();
Message receivedMessage = consumer.receive(1000);
if (receivedMessage != null) {
System.out.println("Received: " + ((TextMessage) receivedMessage).getText());
}
}
public static void sendMessageOnAQueue() throws Exception {
MessageProducer producer = session.createProducer(queue);
TextMessage message = session.createTextMessage("Hello World!");
producer.send(message);
System.out.println("JMS Message " + message.getJMSMessageID());
}
public static void openQueueConnection() throws Exception {
//Get these credentials from IAM in the AWS Web UI
BasicAWSCredentials creds = AWSSharedUtils.creds;
SQSConnectionFactory connectionFactory = new SQSConnectionFactory(
new ProviderConfiguration(),
AmazonSQSClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(creds))
.withRegion(AWSSharedUtils.region).build()
);
connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
queue = session.createQueue("MyQueue");
}
}
================================================
FILE: src/main/java/com/wazcov/awsJavaSamples/V2SDK/S3/S3_Start.java
================================================
package com.wazcov.awsJavaSamples.V2SDK.S3;
import com.wazcov.awsJavaSamples.AwsShared.AWSSharedUtils;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.CreateBucketConfiguration;
import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
import software.amazon.awssdk.services.s3.model.ListBucketsRequest;
import software.amazon.awssdk.services.s3.model.ListBucketsResponse;
import software.amazon.awssdk.services.s3.model.ListObjectsV2Request;
import software.amazon.awssdk.services.s3.model.ListObjectsV2Response;
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
import java.nio.ByteBuffer;
import java.util.List;
import java.util.stream.Collectors;
public class S3_Start {
private static final String BUCKET_NAME = "testing";
private static S3Client client = null;
public static void main(String[] args) {
setupS3();
createBucket(BUCKET_NAME);
if (listBuckets().contains(BUCKET_NAME)) {
System.out.println("Bucket Exists");
uploadToS3(BUCKET_NAME, "Sample_File.txt");
listObjectsInS3Bucket(BUCKET_NAME);
}
}
private static void setupS3() {
client = S3Client.builder().credentialsProvider(StaticCredentialsProvider.create(AWSSharedUtils.basicCredentials)).build();
}
private static void createBucket(String bucket_name) {
CreateBucketRequest createBucketRequest = CreateBucketRequest
.builder()
.bucket(bucket_name)
.createBucketConfiguration(CreateBucketConfiguration.builder()
.locationConstraint(AWSSharedUtils.region.getName())
.build())
.build();
client.createBucket(createBucketRequest);
System.out.println("Created Bucket");
}
private static List