강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của leekoby
leekoby

câu hỏi đã được viết

Áp dụng TypeScript cho Node.js (feat. NodeBird)

Tạo router user, post

'S3' 형식에 'S3Client' 형식의 destroy, middlewareStack, send 속성이 없습니다.ts(2739)

Viết

·

485

0

안녕하세요 선생님

user, post 라우터 편을 보면서 코드를 작성하던중 에러가 발생해서 문의드립니다.

 

AWS S3 업로드 관련 부분인데

 

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

const upload = multer({
  storage: multerS3({
    s3: new AWS.S3(), 
    // s3 이부분에서 에러가 발생합니다
    bucket: 'react-nodebird',
    key(req, file, cb) {
      cb(null, `original/${+new Date()}${path.basename(file.originalname)}`);
    },
  }),
  limits: { fileSize: 20 * 1024 * 1024 },
});

 

'S3' 형식에 'S3Client' 형식의 destroy, middlewareStack, send 속성이 없습니다.ts(2739)
(property) Options.s3: S3Client
빠른 수정을 사용할 수 없음

 

위와 같은 에러가 발생했습니다.

 

그래서 구글링을 통해 에러를 수정한 코드가 아래와 같은데 이 부분이 올바르게 작성된건지 확인부탁드리고자 질문남깁니다.

 

const upload = multer({
  storage: multerS3({
    s3: new S3Client({
      credentials: {
        accessKeyId: process.env.S3_ACCESS_KEY as string,
        secretAccessKey: process.env.S3_SECRET_KEY as string,
      },
      region: 'ap-northeast-2',
    }),
    bucket: 'react-nodebird',
    key(req, file, cb) {
      cb(null, `original/${+new Date()}${path.basename(file.originalname)}`);
    },
  }),
  limits: { fileSize: 20 * 1024 * 1024 },
});

 

 

node.js웹앱typescript

Câu trả lời 1

0

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

네 multer-s3와 aws-sdk의 버전 호환성 차이였을겁니다.

수정하신 것 맞습니다.

Hình ảnh hồ sơ của leekoby
leekoby

câu hỏi đã được viết

Đặt câu hỏi