728x90
nodejs에서 s3에 이미지를 업로드하는 방법은 두가지가 있습니다.
1. multer-s3사용하기
2. s3, api사용하기
nodejs를 통해 개발을 해오신분이라면 multer에 익숙하리라 생각합니다.
multer-s3는 이미 업로드의 위치를 s3의 버킷으로 합니다.
간단히 살펴볼까요?
* multer, multerS3 사용
const multer = require('multer');
const multerS3 = require('multer-s3');
const aws = require('aws-sdk');
aws.config.update({
accessKeyId: myAccessKey,
secretAccessKey: mySecretKey,
signatureVersion: 'v4',
region: myRegion,
});
const s3 = new aws.S3();
const imageUpload = multer({
storage: multerS3({
s3: s3,
bucket: 'myS3Bucket',
metadata: (req, file, cb) => {
cb(null, { fieldName: file.fieldname });
},
key: (req, file, cb) => {
cb(null, Date.now().toString());
},
}),
});
이와같이 어렵지 않게 업로드 할 수 있습니다.
* 이번에는 AWS에서 document의 putObject를 살펴보겠습니다.
var params = {
Body: <Binary String>,
Bucket: "examplebucket",
Key: "HappyFace.jpg",
Tagging: "key1=value1&key2=value2"
};
s3.putObject(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
/*
data = {
ETag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
VersionId: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a"
}
*/
});
두 방법 모두 간편하여, 원하는 방법으로 사용하시면 될것같습니다.
현재, 저는 multer를 쓰고있지만, 이왕이면 aws에서 가이드해주는 방식을 따르는것이
좋다고 생각합니다.
728x90
반응형
'개발, 코딩 > RDB|SQL|NoSQL' 카테고리의 다른 글
react-native, webview 마스터 (0) | 2019.11.19 |
---|---|
mongodb, 배열처리하기 (0) | 2019.11.19 |
react-native-modal-datetime-picker, ios13 다크모드 대응 (0) | 2019.11.16 |
Mongodb, Null 필드 체크하기 (0) | 2019.11.15 |
react-native, shadow에 대한 연구 (0) | 2019.11.14 |