簡體   English   中英

如何使用節點js將base64數據作為圖像上傳到s3?

[英]how to upload base64 data as image to s3 using node js?

我將canvas的base64data發送到node.js腳本。 我需要將base64data作為圖像存儲到s3bucket。 有沒有辦法實現它?

  1. 將您的數據URI存儲在變量中。
  2. 創建函數,將您的數據URI(64位編碼的字符串)解碼為字符串(這里我創建了dataURItoBlob()函數)並在解碼后返回字符串。

  3. 將該字符串傳遞給S3上傳功能的主體。

      var myDataUri = "data:image/jpg;base64,JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYW..." var myFile=dataURItoBlob(myDataUri); function dataURItoBlob(dataURI) { var binary = atob(dataURI.split(',')[1]); var array = []; for (var i = 0; i < binary.length; i++) { array.push(binary.charCodeAt(i)); } return new Blob([new Uint8Array(array)], { type: 'image/jpg' }); } if (myFile)) { results.innerHTML = ''; var params = { Key: fileName+'.jpg', ContentType: 'image/jpg', Body: myFile }; bucket.upload(params, function(err, data) { results.innerHTML = err ? 'ERROR!' : 'UPLOADED.: ' + file; }); } else { results.innerHTML = 'Nothing to upload.'; } 

您可以使用AWS putObject方法發送base64數據,如下所示

var AWS = require('aws-sdk');
AWS.config.loadFromPath('./s3_config.json');
var s3Bucket = new AWS.S3( { params: {Bucket: 'myBucket'} } );

var imageBase64Data='Your base64 code '

s3Bucket.putObject(imageBase64Data, function(err, data){
  if (err) { 
    console.log(err);
    console.log('Error uploading data: ', data); 
  } else {
    console.log('succesfully uploaded the image!');
  }
});

暫無
暫無

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

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