現在,我通過油畫數據URI字符串如何帆布數據URI上傳到Amazon S3服務器
(數據:圖像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAUAAAADwCAYAAABxLb1rAAAgAElEQVR ..... )
我的hapi(NodeJS)服務器。
我的問題是:
什麼是我的下一個步驟,以「流」 /將此數據上載到Amazon S3和創建一個實際的圖像呢?
現在,我通過油畫數據URI字符串如何帆布數據URI上傳到Amazon S3服務器
(數據:圖像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAUAAAADwCAYAAABxLb1rAAAgAElEQVR ..... )
我的hapi(NodeJS)服務器。
我的問題是:
什麼是我的下一個步驟,以「流」 /將此數據上載到Amazon S3和創建一個實際的圖像呢?
發送對象之前到S3,你必須改變的base64緩衝和發送之後,例如:
var buf = new Buffer(b64string, 'base64');
s3.putObject({/*some params*/, Body: buf}, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
這一點,你將數據發送到S3之後,你將可以打開圖像,而不解碼。
祝你好運!
之後傳遞字符串在身體的S3上傳功能
var myDataUri = "data:application/pdf;base64,JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYW..."
var myFile=dataURItoBlob(myDataUri);
function dataURItoBlob(dataURI) {
console.log('1: ',dataURI);
var binary = atob(dataURI.split(',')[1]);
var array = [];
console.log('2: ',binary.length);
for (var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {
type: 'application/pdf'
});
}
if (myFile)) {
results.innerHTML = '';
var params = {
Key: new Date().getTime() + '.pdf',
ContentType: 'application/pdf',
Body: myFile
};
bucket.upload(params, function(err, data) {
results.innerHTML = err ? 'ERROR!' : 'UPLOADED.: ' + file;
});
} else {
results.innerHTML = 'Nothing to upload.';
}
所以真正的問題是,你如何從到的NodeJS Amazon S3的上傳。 –
你需要從這個base64圖像創建一個流,並將流上傳到S3 –
如果你已經搜索過,你會發現http://stackoverflow.com/questions/7511321/uploading-base64-encoded-image-to-amazon- s3-via-node-js?rq = 1和http://stackoverflow.com/questions/5867534/how-to-save-canvas-data-to-file/5971674#5971674?讓我猜你甚至沒有搜索。 –