inflearn logo
강의

講義

知識共有

イメージ管理フルスタック (feat. Node.js、React、MongoDB、AWS)

最終的にデータベースに画像情報を保存する

node js를 이용하고 mysql에 이미지 경로 저장

1258

dramayeong8278

投稿した質問数 8

2

 

nodejs, multer를 통해서 이미지를 업로드했습니다

db에 해당 파일명uuid()를 통해서 저장을 했는데

이미지 주소복사 해서 검색해서 들어가면 이미지가 나오는데

검색해도 못들어가게 하려면 어떻게해야하나요? 또는 관리자만 들어갈수있게하려는데 방법이 있을까요

react node.js aws mongodb express lambda

回答 1

1

sihoon

multer로 사용해서 서버에 이미지를 저장하는 경우에는 이런 방식으로 하면 되요:

const express = require('express');
const fs = require('fs');
const app = express();
const path = require('path');

// 관리자 확인 미들웨어
function isAdmin(req, res, next) {
    // 이 함수는 예시로, 실제로는 사용자가 관리자인지 확인하는 로직이 들어가야 합니다.
    const user = getUserFromRequest(req); // 구현 필요

    if (user.isAdmin) {
        next();
    } else {
        res.status(403).send('Forbidden');
    }
}

app.get('/images/:uuid', isAdmin, (req, res) => {
    const uuid = req.params.uuid;
    const imagePath = path.join(__dirname, 'uploads', uuid);

    // 파일이 존재하는지 확인
    if (fs.existsSync(imagePath)) {
        res.sendFile(imagePath);
    } else {
        res.status(404).send('File not found');
    }
});

 

만약 강의 차후에 나오는 S3 같은 외부 저장소에 이미지를 저장할 경우에는 방법이 좀 다릅니다. AWS signedUrl 생성으로 클라이언트가 서버를 거치지 않고 S3에 바로 이미지 업로드 하는 방법을 배우게 되는데요. 비슷한 방식으로 GET (읽기) 전용 signedUrl을 생성받을 수 있습니다. 이렇게 하면 권한이 부여된 유저만 이미지를 확인할 수 있게 되요

Router.use 두번째 파라미터 ImageRouter : undefined 전달 오류

0

107

2

소스코드 요청

0

153

1

프록시 관련 질문

0

151

1

Presigned URL 사용시 데이터베이스 저장 시점

0

322

1

이미지 등록시 자동 등록 오류

0

211

1

강의에 사용된 코드 다운 받는 사이트 주소 있나요?

0

373

2

axios 이용해서 백엔드로 이미지 전송 중 새로고침

0

471

1

ImageList 컴포넌트에서 업로드 한 사진을 리스트에서 바로 보기 위해 이 방법도 괜찮나요??

0

377

1

이미지 처음 올릴 때만 나타나는 오류

0

250

1

es6 스타일로 Import 할때 동작하지 않습니다.

0

382

1

이미지 업로드시

0

359

1

선생님 cloudFront를 사용하게되면 S3는 private으로 사용하는게 좋을까요

0

539

1

선생님 aws-sdk 모듈을 찾을 수 없다고 합니다.

0

663

1

new aws.S3 version 확인

2

506

1

react-router-dom v6 useHistory 이슈

7

636

0

람다에서 시간 초과 에러가 뜹니다!

0

315

1

첫 로드시 동일한 이미지 두번호출

2

485

1

이미지 업로드 시 배열로

2

524

1

Promise.all에 대한 질문

0

421

1

세션에 관한 질문이 있습니다.

0

428

1

Promise.all관련 질문 ("여러 이미지 미리보기" 중...)

0

303

1

cdn 주소

0

502

1

특정 user 페이지 가져오기 질문있습니다.

0

289

1

mime-types에서 jpg타입 저장이 안됩니다.

0

414

2