0
이미지를 나타내는 base64 인코딩 된 문자열을 사용하는 Express 앱을 작성 중입니다. 현재 문자열을 가져 와서 AWS S3에 이미지를 업로드 할 수 있는지 잘 모르겠습니다. 인코딩 된 이미지 문자열 데이터를 읽고 디코딩하고 fs
을 사용하여 파일을 작성한 다음 업로드하려고합니다. 이 작업은 원시 파일을 가져 오는 엔드 포인트에서 작동하며 모든 컨텐츠는 AWS s3에 올바르게 업로드됩니다.노드를 사용하여 S3에 이미지를 업로드하는 방법
이제 위에서 설명한 작업을 수행 할 때 S3에 업로드 할 수 있지만 파일이 0KB이고 비어 있습니다. 이유는 확실하지 않습니다. 필자는 stringData를 사용하고 테스트 파일에 파일을 작성하는 것으로 테스트했으며 작동합니다. 그러나 s3에 업로드하려고하면 파일이 표시되지만 비어 있습니다. 여기
router.post('/images/tags/nutritionalInformation/image/base64encoded', function (req, res) {
console.log(req.body.imageString);
var base64Stream = req.body.imageString;
var imgDecodedBuffer = decodeBase64Image(base64Stream);
console.log(imgDecodedBuffer);
// write to image file
var prefix = guid().toString() + ".jpg";
var filePath = './uploads/' + prefix;
console.log(filePath);
fs.writeFile(filePath, imgDecodedBuffer.data, function(err) {
console.log(err);
});
var stream = fs.createReadStream(filePath);
console.log(stream);
return s3fsImpl.writeFile(prefix, stream).then(function() {
fs.unlink(filePath, function (err) {
if (err) {
console.error(err);
}
});
});
})
는 관련 import 문은 다음과 같습니다 : 어떤 도움을 크게 감상 할 수
var fs = require('fs');
var s3fs = require('s3fs');
var multiparty = require('connect-multiparty'),
multipartyMidleware = multiparty();
var s3fsImpl = new s3fs('blahblah', {
accessKeyId: 'ACCESS_KEY_ID',
secretAccessKey: 'SECRET'
});
여기 내 코드입니다!