Quick AWS S3 Bucket Intro

S3 bucket is a simply a content/media/files storage.

Instead of calling them disks which sounds boring AWS calls them buckets!

You can upload data manually, via AWS SDK or CLI. You can also access the data from your application via AWS SDK.

An important thing to note is that not all SDKs are same. I’ve heard stories how PHP SDK cannot upload files in async but other languages can.

Then permissions wise you make data private which can only be accessed using your AWS keys or make temporary links to the object (item) in the S3 bucket.

Note that anything that goes into S3 is called an Object! then each object has it’s properties, for example metadata, uploaded date etc.. All this data can be accessed via API too.

Personally I’ve used S3 buckets for two things in past, one is to store large PDF files and second to store and stream media files (mp3).

S3 buckets can also host a static website (HTML/CSS/JS), basically we upload the index.html and create a Hosting Zone (Routes 53) and within that point the A record to bucket’s address which might look like this: s3-website.eu-west-2.amazonaws.com.

Here’s how a Zone (Route53) looks like when pointing your domain to S3 bucket:

When you create the zone the name servers are filled by default

Another thing about buckets is their policy, like I said before they can be public or private.

With policies we can dictate this, here’s an example of a simple policy: This policy gives public the Read only access to sixthdesk.com bucket (PublicReadGetObject).

“Version”: “2012-10-17”,
“Statement”: [
“Sid”: “PublicReadGetObject”,
“Effect”: “Allow”,
“Principal”: ““, “Action”: “s3:GetObject”, “Resource”: “arn:aws:s3:::sixthdesk.com/

All in all S3 bucket is one of the easiest things to understand on AWS. Think of it like Dropbox which can be accessed via interface or via API.

Finally worth understanding that S3 buckets are cheap but not free, there’s storage charge but also network charge!

Download a free copy

Leave a comment

Your email address will not be published. Required fields are marked *