0

I'm using react code on the frontend:

const formData = new FormData();
formData.append('username', e.target.username.value);
formData.append('email', e.target.email.value);
formData.append('bio', e.target.bio.value);
formData.append('profileImg', fileInput);

const newUser = await API.post('apiName', '/auth/sign-up', {
    body: formData,
});

On backend using express.js with multer, amplify rest api:

const multer = require('multer');
const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const upload = multer({
    storage: multer.memoryStorage(),
    // file size limitation in bytes 2MB
    limits: { fileSize: 2097152 },
});

app.post(
    '/auth/sign-up',
    upload.single('profileImg'),
    async function(req, res) {
        const details = await s3
            .upload({
                Bucket: 'bucketName',
                Key: 'someKey',
                Body: req.file.buffer,
            }).promise();
        console.log(details);
    }
);

Details get logged, file gets uploaded, no error on cloudwatch but file is corrupted.

Andrija Gajic
  • 314
  • 3
  • 15

0 Answers0