• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method.

22.02.21 15:48 작성 조회수 3.47k

0

이미지 업로드 중 에러가 발생하여 질문드립니다.

제가 잘못된 정보를 제공했다고 하는 것 같은데

도저히 무엇이 잘못인지를 모르겠습니다...ㅠㅠㅠ

 

버킷 권한도 잘 설정한 것 같고

.env 파일과 vim으로도 액세스 키

복사하였는데도 그렇습니다....

코드도 그대로 한 것 같은데 무엇이 문제일까요?

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: "react-nodebird-aws-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) => {
        // req.files 는 `image` 라는 파일정보를 배열로 가지고 있음.
        res.json(req.files.map((v) => v.location));
    }
);

에러 검색했을 때 액세스 키에 /나 %가 포함되어 그럴 수 있다하여 그 부분도 확인해보았으나 그대로입니다ㅜㅜㅜ

답변 2

·

답변을 작성해보세요.

0

1004lucifer님의 프로필

1004lucifer

2022.07.21

@huhu

업로드하는 파일명에 띄어쓰기 또는 특수문자 같은게 들어가지 않았는지 확인해 보세요.

업로드하는 파일명을 띄어쓰기 없는 순수 영어로된 파일로 테스트를 한번 해보세요.

https://icthuman.tistory.com/entry/AWS-Java-SDK-S3-File-upload

0

일단은 access_key나 secret 문제로 보이긴 합니다. 띄어쓰기같은 게 마지막이나 처음에 들어가진 않았는지 찾아보시고, 키를 새로 발급도 해서 교체해서도 해보세요.