昨天我做了一个深夜的编码会议,并创建了一个小的node.js / JS(实际上是CoffeeScript,但是CoffeeScript只是JavaScript,所以可以说是JS)应用程序。
目标是什么:
步骤1完成。
服务器现在有一个字符串
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt...
我的问题是: 将数据“流” /上传到Amazon S3并在那里创建实际映像的下一步 是 什么?
knox https://github.com/LearnBoost/knox似乎是一个很棒的库,可以将内容放入S3中, 但是我缺少的是base64编码图像字符串和实际上传操作之间的粘合 ?
欢迎任何想法,指针和反馈。
对于仍在努力解决此问题的人们。这是我与本机aws-sdk一起使用的方法。
var AWS = require('aws-sdk'); AWS.config.loadFromPath('./s3_config.json'); var s3Bucket = new AWS.S3( { params: {Bucket: 'myBucket'} } );
在您的路由器方法中:-ContentType应该设置为图像文件的内容类型
buf = Buffer.from(req.body.imageBinary.replace(/^data:image\/\w+;base64,/, ""),'base64') var data = { Key: req.body.userId, Body: buf, ContentEncoding: 'base64', ContentType: 'image/jpeg' }; s3Bucket.putObject(data, function(err, data){ if (err) { console.log(err); console.log('Error uploading data: ', data); } else { console.log('succesfully uploaded the image!'); } });
s3_config.json文件是:-
{ "accessKeyId":"xxxxxxxxxxxxxxxx", "secretAccessKey":"xxxxxxxxxxxxxx", "region":"us-east-1" }