Multer + S3를 통해 파일 업로드를 NodeJs 환경에서 구현중에 잘 되던게 어느 순간

갑자기 에러가 뜨기 시작했다.

 

추정되는 원인

const fileContent: Buffer = fs.readFileSync(input.fileData.path);

이 코드에서 fs를 사용해서 path를 읽어들였으나 잘 되던게 undefined 에러가 발생 (처음부터 안됐으면.. 왜 되던게..)

 

해결법

const fileContent: Buffer = input.fileData.buffer;

Multer에서 File에 대한 buffer를 fs를 사용하지 않고 곧바로 넣어준다.
이렇게 할 경우 S3에 잘 넣어 줄 수 있게 됨.

 

S3에 파일 업로드하기

 const params =
 {
        Bucket: process.env.BUCKET_NAME,
        Key: input.fileData.originalname,
        Body: fileContent,
        ContentType: input.fileData.mimetype
 };

const result = await s3Storage.upload(params).promise();