簡體   English   中英

如何將畫布數據uri上傳到amazon s3服務器

[英]How to upload canvas data uri to amazon s3 server

現在,我已經傳遞了畫布數據URI字符串

(數據:image / 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,您將無需解碼即可打開圖像。

祝好運!

  1. 將您的數據URI存儲在vaiable中。
  2. 創建函數,將您的數據URI(64位編碼的字符串)解碼為字符串(這里我創建了dataURItoBlob()函數)並在解碼后返回字符串
  3. 將該字符串傳遞給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.'; } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM