AWS 자격 증명
credentials 파일 만들기 : 파일만 만들면 별도의 설정이나 코드는 필요 없음
- Mac/Linux : ~/.aws/credentials
- Windows : C:\Users\USERNAME\.aws\credentials
이미지 업로드
- 이미지 업로드에 AWS S3를 사용하기 위해 multer, multer-s3와 aws-sdk를 사용함.
- npm install multer multer-s3 aws-sdk --save를 이용해 설치(--save는 package.json에 자동으로 추가하는 역할)
const awssdk = require('aws-sdk');
const multer = require('multer');
const multerS3 = require('multer-s3');
const s3 = new awssdk.S3();
const upload = multer({
storage: multerS3({
s3: s3,
bucket: '버킷명',
acl: 'public-read', //파일에 대한 접근권한으로 모든 유저(클라이언트)가 READ에 대한 권한을 가짐
key: function (req, file, cb) { //저장될 파일 이름 정하기
cb(null, 'collection/' + Date.now() + '.' + file.originalname.split('.').pop());
}
})
}, 'NONE');
module.exports = { upload };
router.post('/', upload.single('file'), (req, res) => {
let collection = new Collection(req.body);
if (req.file !== undefined) {
collection.thumbnail = req.file.location;
collection.save((err, collection) => {
if (err) return res.json({ success: false, err });
return res.status(200).json({
success: true
});
});
}
else
return res.status(400).send("Image Upload failed");
});
- upload.single('file')이 미들웨어로 작동한다.(multer가 express에서 미들웨어 역할을 하므로 별도의 구현이 필요없다)
- multer는 form-data에서 file(다른 이름 사용 가능)이라는 name을 가진 필드에 있는 이미지 파일을 처리하고 반환받은 값은 req.file에 나머지 데이터는 req.body에 담아 반환한다.
- 이미지가 있을 경우 s3에 이미지 업로드가 완료되면 req.file.location에 있는 이미지 링크와 기타 데이터를 함께 데이터베이스에 저장한다.
회의 내용
- 기본 구조 및 CSS 완성, 역할 분담 후 기능 구현 중
- 남은 시간 및 팀원 변화를 고려하여 기획 수정
'Team Project (2020-2021) > SeNaJooNa' 카테고리의 다른 글
12. 기능 구현 마무리 & 자잘한 버그 수정(2021.03.22 ~ 2021.03.28) (0) | 2021.03.29 |
---|---|
11. 끝이 없는 개발 진행 중 (2021.03.15 ~ 2021.03.21) (0) | 2021.03.21 |
9. 개발 진행 (2021.03.01 ~ 2021.03.07) (0) | 2021.03.06 |
8. OurPlace Backend & Frontend(2021.02.22~2021.03.01) (0) | 2021.02.28 |
7. 웹 프로젝트 UI 구상 및 DB설계 (2021.02.14 - 2021.02.22) (0) | 2021.02.22 |