DEV Community

Amador Criado for AWS Community Builders

Posted on

5 2

How to enable versioning in Amazon S3

Introduction

What is Versioning?

  • Versioning is a means for keeping multiple variants of the same object in the bucket.

  • Versioning is used to preserve, retrieve, and restore every version of every object stored in an S3 bucket.

  • Versioning is done at the S3 Bucket level.

  • Versioning can be enabled from the AWS Console / SDKs / API.

  • Versioning, once enabled, cannot be completely disabled.

  • The alternative to disabling versioning is placing the bucket in a "versioning-suspended" state.

  • A drawback of having multiple versions of an object is you are billed multiple times (since the objects are getting stored in S3 each time).

  • In order to avoid having multiple versions of the same object, S3 has a feature called Lifecycle Management. This allows us to decide on what to do when multiple versions of an object are piling up.

  • One advantage of versioning is, we can provide permissions on versioned objects i.e., we can define which version of an object is public and which one is private.

Example Diagram

aws-s3-versioning-diagram.png

Enable Versioning on the S3 bucket

  • Create new Bucket
    aws-s3-versioning-new-bucket.png

  • Enable versioning
    aws-s3-versioning-check-enabled.png

  • To test it, upload new object, we have used the orc avatar for the initial version:

aws-s3-versioning-s3-upload.png

  • Make the bucket public with a Bucket Policy, use the Policy generator and grant public access to getObject in s3:

aws-s3-versioning-policy-gen-click.png

aws-s3-versioning-policygen.png

aws-s3-versioning-policy-json.png

aws-s3-versioning-policy-paste.png

  • Now we upload the same object but with different color balance to differenciate clearly the versions:

aws-s3-versioning-show.png

aws-s3-versioning-select-version.png

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Best Practices for Running  Container WordPress on AWS (ECS, EFS, RDS, ELB) using CDK cover image

Best Practices for Running Container WordPress on AWS (ECS, EFS, RDS, ELB) using CDK

This post discusses the process of migrating a growing WordPress eShop business to AWS using AWS CDK for an easily scalable, high availability architecture. The detailed structure encompasses several pillars: Compute, Storage, Database, Cache, CDN, DNS, Security, and Backup.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay