Skip to content

Instantly share code, notes, and snippets.

@nyx-code
Last active November 25, 2022 20:50
Show Gist options
  • Save nyx-code/c1c07dc7830cd596c7a1b48d0dd5d15f to your computer and use it in GitHub Desktop.
Save nyx-code/c1c07dc7830cd596c7a1b48d0dd5d15f to your computer and use it in GitHub Desktop.

Revisions

  1. nyx-code revised this gist Apr 5, 2020. No changes.
  2. nyx-code revised this gist Apr 5, 2020. No changes.
  3. nyx-code created this gist Apr 5, 2020.
    46 changes: 46 additions & 0 deletions FileUpload.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,46 @@
    require('dotenv/config')

    const express = require('express')
    const multer = require('multer')
    const AWS = require('aws-sdk')
    const uuid = require('uuid/v4')

    const app = express()
    const port = 3000

    const s3 = new AWS.S3({
    accessKeyId: process.env.AWS_ID,
    secretAccessKey: process.env.AWS_SECRET
    })

    const storage = multer.memoryStorage({
    destination: function(req, file, callback) {
    callback(null, '')
    }
    })

    const upload = multer({storage}).single('image')

    app.post('/upload',upload,(req, res) => {

    let myFile = req.file.originalname.split(".")
    const fileType = myFile[myFile.length - 1]

    const params = {
    Bucket: process.env.AWS_BUCKET_NAME,
    Key: `${uuid()}.${fileType}`,
    Body: req.file.buffer
    }

    s3.upload(params, (error, data) => {
    if(error){
    res.status(500).send(error)
    }

    res.status(200).send(data)
    })
    })

    app.listen(port, () => {
    console.log(`Server is up at ${port}`)
    })