Upload Image Dengan NodeJs, Multer Dan AWS S3

Ayi angio
2 min readDec 10, 2019

--

Source

Hai teman teman pada tulisan ini saya akan berbagi pengalaman belajar saya seperti pada judul tulisan ini.

Sebelum teman teman mengikuti ini, teman teman harus mempersiapkan beberapa syarat.

Persiapan

  • Bucket S3, jika belum buat bisa dilihat disini
  • API sederhana (Node Js).
  • Postman, bisa download disini

Steps

Pertama-tama install dulu package-packagenya

  • AWS sdk
  • multer
npm install aws-sdk multer

setelah menginstall package AWS dan multer, mari kita memulai menambahkan codingan multer dan AWS s3 ke dalam codingan kita

Sebelum menambahkan codinganya agar teman-teman tidak bingung flow dan struktur foldernya seperti ini

Struktur Folder

Keterangan dari Struktur folder diatas sebagai berikut :

  • controller yang berguna menangani logic dari API.
  • response yang berguna untuk mengatur json dari hasil API.
  • route adalah daftar endpoint serta untuk mengatur middleware untuk masing-masing endpoint.
  • server.js adalah entrypoint dari API.

Selanjutnya tambahkan middleware multer untuk endpoint yang digunakan mengupload image, dalam tulisan ini saya hanya menggunakan satu endpoint /upload untuk menguji coba.

multer.js

Setelah itu, tambahkan di controller.js configuration untuk Aws S3.

const AWS = require('aws-sdk');const fs = require('fs')const s3 = new AWS.S3({   accessKeyId: process.env.ID,   secretAccessKey: process.env.SECRET});

accessKeyId dan secretAccessKey didapatkan saat membuat Bucket S3 dan diletakan di .env

Setelah itu masuk kefungsi yang terdapat pada endpoint route , dalam tulisan ini saya menggunakan fungsi post.

controller.js

untuk baris Bucket: process.env.BUCKET_NAME nama bucketnya harus sesuai dengan yang dibuat ya, dan ditulisan ini saya menggunaka env.

Mari kita coba menggunakan postman.

maka hasilnya akan seperti ini

Upload Image

kemudian kita cek apakah sudah masuk dalam Bucket kita.

S3 Bucket

Sekian Tutorial Kali ini, mohon maaf jika belum sempurna

Source code Tulisan ini bisa dilihat disini

Wasallam !!

--

--

Ayi angio
Ayi angio

Written by Ayi angio

DevOps Engineer | Github: Ayiangio | Email: moh.harisangio@gmail.com

No responses yet