0
FormData 객체로 래핑 된 이미지를 노드 서버로 전송하는 각도 2 애플리케이션이 있습니다.FormData to Node Server 다음 S3로
내가 서버에서 이미지를 받아 파일에 기록 할 수 있습니다는 다음을 다시 다운로드 :
var busboy = new Busboy({ headers: req.headers });
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
if(mimetype == "image/png"){
var saveTo = path.join('/home/ec2-user/bonappetite/tmp', path.basename(filename) + ".png");
} else if(mimetype == "image/jpeg") {
var saveTo = path.join('/home/ec2-user/bonappetite/tmp', path.basename(filename) + ".jpg");
} else {
var saveTo = path.join('/home/ec2-user/bonappetite/tmp', path.basename(filename));
}
file.pipe(fs.createWriteStream(saveTo));
});
busboy.on('finish', function() {
console.log("url retrieved");
res.writeHead(200, { 'Connection': 'close' });
res.end(savedUrl);
});
return req.pipe(busboy);
는 내가 뭘하려고하면 FormData 내부의 이미지를 촬영하고 내 S3 버킷에 업로드입니다 . 나는 데이터 나 자신을 업로드 할 수 있어요,하지만 난
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./aws_config.json');
var s3Bucket = new AWS.S3({ params: {Bucket: 'xxxx'} });
params = {Key: filename, Body: file};
s3Bucket.putObject(params, function(err, data) {
if (err) {
console.log(err)
} else {
var urlParams = {Bucket: 'xxxx', Key: filename};
s3Bucket.getSignedUrl('getObject', urlParams, function(err, url){
if(err){
console.log(err);
res.status(err.status || 500);
res.send(error);
}else {
res.setHeader('Content-Type', 'application/json');
url = url;
res.send({"url":url});
}
})
}
});
어떻게 난 그냥 내 서버에 업로드 한 파일을 가지고 S3에 스트리밍 할 수 있습니다 POST 요청에서 저장 한 이미지를 업로드하는 것 캔트 ?
s3으로 보내기 전에 파일을 디스크에 저장해야합니까?
감사합니다.