강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

뉸뉴님의 프로필 이미지
뉸뉴

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

s3 관련 aws-sdk 오류 질문

해결된 질문

작성

·

422

·

수정됨

0

안녕하세요 선생님.

일단 우분투에서 백서버 실행을 하면

 sudo npx pm2 reload all
Use --update-env to update environment variables
[PM2] Applying action reloadProcessId on app [all](ids: [ 0 ])
[PM2] [app](0) ✓

이렇게 실행은 되는데 주소로 접근하면 자꾸 에러가 나서 로그를 보니까

/root/.pm2/logs/app-error.log last 15 lines:
0|app      |     at Module._compile (internal/modules/cjs/loader.js:1114:14)
0|app      |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10)
0|app      |     at Module.load (internal/modules/cjs/loader.js:979:32)
0|app      |     at Function.Module._load (internal/modules/cjs/loader.js:819:12)
0|app      |   code: 'MODULE_NOT_FOUND',
0|app      |   requireStack: [
0|app      |     '/home/ubuntu/My-Projects/fourthProject/back/node_modules/@aws-sdk/lib-storage/dist-cjs/Upload.js',
0|app      |     '/home/ubuntu/My-Projects/fourthProject/back/node_modules/@aws-sdk/lib-storage/dist-cjs/index.js',
0|app      |     '/home/ubuntu/My-Projects/fourthProject/back/node_modules/multer-s3/index.js',
0|app      |     '/home/ubuntu/My-Projects/fourthProject/back/routes/post.js',
0|app      |     '/home/ubuntu/My-Projects/fourthProject/back/app.js'
0|app      |   ]
0|app      | }

이렇게 나오는데, 이건 routes/post.js 에서 aws-sdk를 적용한 뒤에 나온 에러라서 이 부근이 문제인건 알겠지만 어디를 봐야할지 모르겠어서 질문 드립니다.

 

const multerS3 = require('multer-s3');
const AWS = require('aws-sdk');

AWS.config.update({
  accessKeyId: process.env.S3_ACCESS_KEY_ID,
  secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
  region: 'ap-northeast-2',
});

const upload = multer({
    storage: multerS3({
      s3: new AWS.S3(),
      bucket: 'fashionary-s3',
      key(req, file, cb){
        cb(null, `original/${Date.now()}_${path.basename(file.originalname)}`)
      }
    }),
    limits: {fileSize: 20 * 1024 * 1024} //20MB
})
router.post('/images', isLoggedIn, upload.array('image'), async(req, res, next) => {
    console.log("req.files:::::::" + req.files);
    res.json(req.files.map((v) => v.location));
});

문제의 코드는 위와 같은데,

버켓명도 일치하고, 리전도 서울(아시아 태평양(서울) ap-northeast-2)이고

vim .env해서 S3_ACCESS_KEY_ID와 S3_SECRET_ACCESS_KEY도 넣고,(cat .env로 확인하였습니다)

npm uninstall multer-s3 aws-sdk 후, npm install multer-s3 aws-sdk 도 해보았는데

같은 에러가 떠요. 어디를 봐야 하나요 선생님..?

 

 

 

 

 

 

 

 

 

 

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

제 강좌랑 aws-sdk나 multer-s3 버전이 다를겁니다. 그걸 같게 만들어주셔야 합니다. 깃헙에 있는 버전이랑요.

뉸뉴님의 프로필 이미지
뉸뉴
질문자

와ㅠㅠㅠㅠㅠㅠ해결했어요 답변 감사힙니다!!

뉸뉴님의 프로필 이미지
뉸뉴
질문자

아 선생님 제가 강의 따라가다가 실수로 절대 노출하면 안된다는...액세스키를 퍼블릭 깃헙에 올렸다가 지우고 aws에서도 삭제하고 새로 받았는데 혹시 추후에 문제가 될까요...?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

액세스키 삭제하셨다면 문제 안 됩니다~

뉸뉴님의 프로필 이미지
뉸뉴

작성한 질문수

질문하기