AWS Developer Tools Blog

High-Level APIs in the AWS SDK for Java

Today, at AWS re:Invent 2013, I’m talking about some of the high-level APIs for Amazon S3 and Amazon DynamoDB, but there are a whole lot more high-level APIs in the SDK that I won’t have time to demo. These high-level APIs are all aimed at specific common tasks that developers face, and each one can save you development time. To help you find all these high-level APIs, we’ve put together the list below. As an added bonus, I’ve thrown in some extra links to some of the more powerful features in the AWS Toolkit for Eclipse.

Take a few minutes to explore the SDK and Eclipse Toolkit features below. Are you already using any of these high-level APIs? What’s your favorite? Let us know in the comments below!

Amazon S3 TransferManager

TransferManager is an easy and efficient way to manage data transfers in and out of Amazon S3. The API is easy to use, provides asynchronous management of your transfers, and has several throughput optimizations.

Amazon S3 Encryption Client

This drop-in replacement for the standard Amazon S3 client gives you control over client-side encryption of your data. The encryption client is easy to use, but also has advanced features like hooks for integrating with existing key management systems.

Amazon DynamoDB Mapper

The DynamoDB Mapper handles marshaling your POJOs into and out of Amazon DynamoDB tables. Just apply a few annotations to your POJOs, and they’re ready to use with the mapper. The mapper also has support for running scans and queries on your data and for batching requests.


This new type in the SDK allows you to easily store pointers to data in Amazon S3 inside your POJOs that you’re using with the DynamoDB Mapper. It also makes it easy to perform common operations on the referenced data in Amazon S3, such as replacing the contents, downloading them, or changing access permissions.

Amazon DynamoDB Tables Utility

This class provides common utilities for working with Amazon DynamoDB tables, such as checking if a table exists, and waiting for a new table to transition into an available state.

AWS Flow Framework

AWS Flow is an open-source framework that makes it faster and easier to build apps with Amazon Simple Workflow. The framework handles the interaction with Amazon SWF and keeps your application code simple.

Amazon SES JavaMail Provider

The SDK provides an easy to use JavaMail transport implementation that sends email through the Amazon Simple Email Service.

Amazon SQS Batched Client

This extension of the basic Amazon SQS client provides client-side batching when sending and deleting messages with your Amazon SQS queues. Batching can help reduce the number of round-trip queue requests your application makes and can therefore save you money.

Amazon SNS Topics Utility

This class provides common utilities for working with Amazon SNS topics, such as as subscribing an Amazon SQS queue to an SNS topic to receive published messages.

AWS Policy API

Writing JSON policies by hand can be difficult to maintain, but the Policy API in the AWS SDK for Java gives you an easy way to programmatically create JSON policies for AWS services.

Amazon Glacier ArchiveTransferManager

Glacier’s ArchiveTransferManager makes it easy to get data into and out of Amazon Glacier.

AWS Toolkit for Eclipse

Android Application Development Support

Developing Android applications that use AWS has never been easier. With the AWS Toolkit for Eclipse, you can create new AWS Android projects that have your security credentials configured, Android libraries present, AWS SDK for Android on your build path, and some sample source code to start from.

CloudFormation Support

Lots of new features in the Eclipse Toolkit make working with AWS CloudFormation easy. You can update your CloudFormation stacks directly from Eclipse and use a custom editor to make working with CloudFormation templates easy.

AWS Elastic Beanstalk Deployment

One of the most powerful features of the Eclipse Toolkit is being able to quickly deploy your Java web applications to AWS Elastic Beanstalk directly from within Eclipse. This three-part blog series demonstrates how to get started with AWS Java web projects in Eclipse, how to deploy them to AWS Elastic Beanstalk, and how to manage your applications running in AWS Elastic Beanstalk.