Book Image

Amazon S3 Essentials

By : Sunil Gulabani
Book Image

Amazon S3 Essentials

By: Sunil Gulabani

Overview of this book

Amazon Simple Storage Service (Amazon S3), provides developers and IT teams with secure, durable, and highly-scalable object storage. Amazon S3 is easy to use, with a simple web services interface to store and retrieve any amount of data from anywhere on the web. S3 is automatically web scalable and responds to the requirements of your application and traffic, and therefore offers a key element to help companies deal dynamically with any spike in traffic for their application (such as a free e-book offer). This book starts with the basics of the Amazon S3 and its features, and you will quickly get an understanding how to use the Amazon Management Console for Amazon S3 which is the simplest way to manage Amazon S3. Next, we will cover basic operations on bucket, folder, objects. Once the basic operations are understood, you will know how to use Amazon S3 using Java SDK. Following that, you will learn about Copy Objects and Multipart copy objects for large objects size. You will also learn to manage the life cycle of bucket and how to share resources to the different domain by configuring CORS. The book will then guide you through the development and deployment of a static website on Amazon S3 using different services of Amazon. By the end of the book, you will be able to create a scalable application using Amazon S3.
Table of Contents (12 chapters)

Bucket lifecycle


Amazon S3 SDK also provides an API for managing the lifecycle of a bucket. It has two ways to manage the objects of the bucket:

  • Transition

  • Removal

The transition method moves the data to Amazon Glacier, whereas the removal method removes the data from Amazon S3.

To add the lifecycle, we need to apply rules to the bucket. We can apply multiple rules to a single bucket. Let's see how we create rules:

  private Rule createRule(String id, String prefix, int days){
    Rule rule = new Rule();
    rule.withId(id);
    rule.withPrefix(prefix);

    /**
    * Transition is to archive objects into Amazon Glacier.
    */
    rule.withTransition(new Transition()
    .withDays(days)
    .withStorageClass(StorageClass.Glacier));

    rule.withStatus(BucketLifecycleConfiguration.ENABLED.toString());

    return rule;
  }

There are some rules that need to be applied to the bucket lifecycle configuration. Multiple rules can be applied to a bucket. Rules can be formed with several parameters depending...