coding/Error

multer, S3 - this.client.send is not a function

JIN_Coder 2022. 9. 11. 00:39

multer와 S3를 이용해서 이미지 파일을 S3에 업로드하는 기능을 구현하면서 발생한 오류가 있다.

s3에 시크릿 키를 넣어 연결을 해주고, multer미들웨어를 만들어 파일을 받으면 바로 s3에 업로드 후 생성된 URL을 req로 받아서 DB에 저장하려고 했다.

 

모든 준비를 마친 후 postman을 이용해서 파일을 포함한 요청을 보내니 아래와 같은 오류를 만났다.

this.client.send is not a function

처음 사용해보는 기능이라서 아 시작부터 안되네.. 생각하고 구글링을 했다.

원인을 보니 다행히 큰 오류는 아니고 multer-s3와 aws-sdk 모듈의 호환성이 맞지 않아서 생기는 오류라고 한다.

 

package.json 파일을 살펴보니 multer-s3는 3.xx버전이고, aws-sdk는 2.xx버전이었다.

multer-s3를 다운그레이드 하여 2.xx버전으로 사용하면 잘된다고 하였다.

// multer-s3을 삭제
npm uninstall multer-s3

// 2.xx버전으로 재 설치
npm i multer-s3@^2

버전을 2.xx로 맞춰준 후 api통신을 해보니 정상적으로 파일을 받아서 업로드하고 URL을 DB에 잘 저장하면서 쉽게 해결했다.

 

 

 

[AWS Error] multer-s3 upload 오류

서버 로그를 보다가 사진 업로드가 제대로 안되고 있다는 걸 알게 되었다.this.client.send is not a function에러가 계속 나고 있었다.원인을 찾아보니 multer-s3, aws-sdk 모듈이 호환성이 맞아야된다고 한다

velog.io

 

'coding > Error' 카테고리의 다른 글

npm WARN config global  (0) 2022.11.04
error - entirely different commit histories  (0) 2022.09.12
npm - "minor" / "23 packages are looking for funding" 에러  (0) 2022.09.08
ERR_HTTP_HEADERS_SENT  (0) 2022.08.31
인스턴스 접속 에러  (0) 2022.08.19