Download files to amazon AWS S3 bucket using Node js + express; Through this tutorial, you will learn how to download file to amazon s3 bucket using node js + express + aws-s3.
How to download file from S3 bucket using node js
Follow the below-given steps to download the file to amazon s3 bucket using node js + express:
- Step 1 – Create Node Express js App
- Step 2 – Install express, aws-s3, Multer dependencies
- Step 3 – Create Server.js File
- Import Installed Packages
- Create Route for Download File to AWS S3 using Node.js
- Step 4 – Start Node Express Js App Server
Step 1 – Create Node Express js App
Execute the following command on terminal to create node js app:
mkdir my-app cd my-app npm init -y
Step 2 – Install express, aws-s3 dependencies
Execute the following command on terminal to install express, aws-s3 dependencies:
npm install express aws-sdk --save
Express — Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
AWS-SDK — AWS s3 npm is used to upload or delete an image from the s3 bucket with the help of some keys.
Step 3 – Create Server.js File
Create server.js file; so visit your app root directory and create a new file name server.js.
Then follow the below steps:
- Import Installed Packages
- Create Route for Download File to AWS S3 using Node.js
Import Installed Packages
Import above installed dependencies package in server.js file:
var aws = require('aws-sdk') var express = require('express')
Create Route for Download File to AWS S3 using Node.js
The following node js rest api route will be download file to amazon s3 bucket:
app.get('/download-file', function(req, res, next){ // download the file via aws s3 here var fileKey = req.query['fileKey']; console.log('Trying to download file', fileKey); AWS.config.update( { accessKeyId: "....", secretAccessKey: "...", region: 'ap-southeast-1' } ); var s3 = new AWS.S3(); var options = { Bucket : '/bucket-url', Key : fileKey, }; res.attachment(fileKey); var fileStream = s3.getObject(options).createReadStream(); fileStream.pipe(res); });
Open your server js file and add the following code into it:
var express = require('express'); var app = express(); var AWS = require('aws-sdk'); var fs = require('fs'); app.get('/download-file', function(req, res, next){ // download the file via aws s3 here var fileKey = req.query['fileKey']; console.log('Trying to download file', fileKey); AWS.config.update( { accessKeyId: "....", secretAccessKey: "...", region: 'ap-southeast-1' } ); var s3 = new AWS.S3(); var options = { Bucket : '/bucket-url', Key : fileKey, }; res.attachment(fileKey); var fileStream = s3.getObject(options).createReadStream(); fileStream.pipe(res); }); app.listen(3000, function () { console.log('express is online'); })
Step 4 – Start Node Express Js App Server
Execute the following command on terminal to start node express js server:
//run the below command npm start
Conclusion
Download files to Amazon AWS S3 bucket using Node js + express; Through this tutorial, you have learned how to download file to amazon s3 bucket using node js + express + aws-s3.