• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 multer-s3 질문있습니다.

multer-s3 질문있습니다.

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #95319

    정중식
    참가자
     storage._handleFile is not a function 라는 에러가 뜨는데요,
    검색을 해봐도 도저히 모르겠어요!!ㅠㅠㅠ..
    
    우선 제 코드입니다.
    
    multer.js입니다.
    const multer = require('multer');
    const multerS3 = require('multer-s3');
    const { S3 } = require('@aws-sdk/client-s3');
    const { v4: uuidv4 } = require('uuid');
    const s3 = new S3({
      credentials: {
        accessKeyId: process.env.AWS_KEY,
        secretAccessKey: process.env.AWS_PRIVATE_KEY,
      },
    });
    const storage = multer({
      storage: multerS3({
        s3: s3,
        acl: 'public-read-write',
        bucket: 'plant-newjeans/gallery',
        contentType: multerS3.AUTO_CONTENT_TYPE,
        metadata: function (req, file, cb) {
          cb(null, { fileName: file.fieldname });
        },
        key: function (req, file, cb) {
          var filename = uuidv4();
          var ext = file.mimetype.split('/')[1];
          if (!['png', 'jpg', 'jpeg', 'gif', 'bmp'].includes(ext)) {
            return cb(new Error('Only images are allowed'));
          }
          cb(null, Date.now().toString() + filename);
        },
      }),
    }).array('files', 3);
    // module.exports = upload;
    module.exports = multer({
      storage: storage,
      limits: { fileSize: 5 * 1024 * 1024 },
    });
     
    사용은 이런식으로 해주고있어요
    
    
    const upload = require('../../middleware/multer');
    /** 게시글 작성 */
    router.post('/', isLogin, upload.array('images'), async (req, res) => {
     
    ...
    
    }
    
    정확하게 어느부분에서 에러가난다는 로그는없고 에러메시지는 달랑 저거입니다.
    검색을하고 챗지피티를 돌려봐도 오리무중인데 혹시 뭘 의심해봐야하나요?
    코드를 잘못 쓴걸까요?..
    #95344

    codingapple
    키 마스터
    안써봐서모르겠지만 라이브러리 사용법이 잘못되었을 확률이 가장 높은듯요  
    
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠