[AWS] CloudFront, s3 연동 후 signedurl 생성

·2022년 7월 6일
0

최종프로젝트

목록 보기
1/1
post-thumbnail

방법1) 터미널에 url 생성 코드 직접 입력
aws cloudfront sign \
--url https://클라우드프론트주소.cloudfront.net/디렉토리명/파일명.mp4 \
--key-pair-id KXXXXXXXX \
--private-key file:///파일위치디렉토리/프라이빗키.pem \
--date-less-than 2022-07-25T20:50:00+09:00

위와같은 방법으로 시도해봤는데, 어떠한 이유인지 생성된 signedUrl 링크로 들어가면 오류가 발생하였다.

결국 백엔드쪽에 직접 코드를 짜서 문제를 해결하였다.

exports.getSignedUrl = async(req, res, next) => {
    try{
        console.log(new Date().getTime() / 1000);
        const movieId = req.query.movieId;
        const episodeId = req.query.episodeId;
        let media;
        if (movieId) {
            if (episodeId) {
                media = await Episode.findOne({where: { id: episodeId, movieId: movieId }})
            } else {
                media = await Movie.findOne({where: { id: movieId }})
            }
        })
        const s3Key = media.video;
        let cfObjectUrl = distUrl + '/' + s3Key;
        const signedUrl = signer.getSignedUrl({
            url: cfObjectUrl,
            expires: Math.floor((Date.now() + twoHours)/1000)
        })
        console.log(signedUrl)
        res.status(201).json({ signedUrl })

    }catch (error){
        next(error);
    }
}
profile
트레이닝 시작

0개의 댓글