Angular 4 Amazon S3 example – How to upload File to S3 Bucket

Amazon Simple Storage Service (Amazon S3) is object storage built to store and retrieve any amount of data from web or mobile. Amazon S3 is designed to make web-scale computing easier for developers. In this tutorial, we’re gonna create an Angular 4 App that can upload files to Amazon S3 Bucket.

More Practice:
Angular 4 Amazon S3 example – How to get list Files from S3 Bucket

I. Technology

– Angular 4
– AWS SDK

II. How to do

1. Set up Amazon S3
1.1 Create an IAM user

We need to provide access permission bucket. So follow these step to create an IAM user and get Access key ID and Secret access key:

Go to https://console.aws.amazon.com/iam/
In the navigation pane, choose Users and then choose Add user.

springboot amazon s3 starter - choose user

Input User name, choose Programmatic access for Access type:

amazon s3 starter - add user info

Press Next: Permissions button -> go to Set permissions for jsa-user screen.
Now, choose Attach existing policies directly -> filter policy type s3, then check AmazonS3FullAccess:

amazon s3 starter - add policies

Press Next: Review:

amazon s3 starter - review policies

Press Create user:

Press Download .csv for {Access key ID, Secret access key}.

1.2 Create Amazon S3 Bucket

– Go to https://console.aws.amazon.com/s3, click on Create bucket:

– Input information for creating bucket, then click on Create:

amazon-s3-angular4-create-bucket

1.3 Configure CORS for Bucket

– Click on the Bucket we have just created:

amazon-s3-angular4-configure-bucket

– Choose Permission tab, then CORS Configuration:

amazon-s3-angular4-configure-bucket-cors

– Configure CORS for Bucket, then click on Save button.

2. Install AWS SDK

Run this: npm install aws-sdk.

After installing, we can see aws-sdk inside node-modules folder:

amazon-s3-angular4-install-aws-sdk

3. Use AWS SDK

– import AWS and S3 from aws-sdk:

– use accessKeyId & secretAccessKey from the step above to construct S3 bucket.
– call S3 bucket upload() method with input params containing Bucket for bucket’s name, Key for full path, Body for data file.

III. Practice

1. Project Overview
1.1 Goal

We will build an Angular 4 Firebase App that can help user choose file from local and upload it to Amazon S3 Bucket:

amazon-s3-angular4-demo

1.2 Structure

amazon-s3-angular4-structure

2. Step by step
2.1 Set up Angular 4 Project integrating with AWS SDK

Create your own Angular 4 Project, then follow the steps above to integrate AWS SDK.

2.2 Setup @NgModule

2.3 Upload Service

2.4 Form Upload Component

form-upload.component.html

form-upload.component.ts

2.5 App Component

app.component.html

app.component.ts

2.6 Check Result

Run the App, go to http://localhost:4200/.

amazon-s3-angular4-demo

After uploading files:
– Console:
amazon-s3-angular4-result-upload

– S3 Bucket https://console.aws.amazon.com/s3/buckets/jsa-angular4-bucket/jsa-s3:
amazon-s3-angular4-result-bucket

IV. Source Code

Angular4AmazonS3-upload-files

By JavaSampleApproach | January 30, 2018.


Related Posts


Got Something To Say:

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

*