我正在将 Canvas 的 base64 数据发送到 node.js 脚本。我需要将 base64 数据作为图像存储到 s3bucket。有什么办法可以实现吗?
最佳答案
- 将您的数据 URI 存储在变量中。
创建将数据 URI(64 位编码字符串)解码为字符串的函数(此处我创建了 dataURItoBlob() 函数)并在解码后返回字符串。
将该字符串传递给 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.'; }
关于node.js - 如何使用 Node js将base64数据作为图像上传到s3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23561473/