gpt4 book ai didi

javascript - 通过 Node.js 将 base64 编码的图像上传到 Amazon S3

转载 作者:IT老高 更新时间:2023-10-28 21:49:12 28 4
gpt4 key购买 nike

昨天我做了一个深夜编码 session 并创建了一个小型 node.js/JS(实际上是 CoffeeScript,但 CoffeeScript 只是 JavaScript,所以可以说是 JS)应用程序。

目标是什么:

  1. 客户端(通过 socket.io)向服务器发送一个 Canvas datauri (png)
  2. 服务器将图片上传到 amazon s3

第 1 步完成。

服务器现在有一个字符串 a la

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt...

我的问题是:我接下来要如何“流式传输”/将这些数据上传到 Amazon S3 并在那里创建实际图像?

诺克斯https://github.com/LearnBoost/knox似乎是一个很棒的库,可以将一些东西放入 S3,但我缺少的是 base64-encoded-image-string 和实际上传操作之间的粘合剂

欢迎任何想法、建议和反馈。

最佳答案

对于仍在为这个问题苦苦挣扎的人。这是我在原生 aws-sdk 中使用的方法:

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

在你的路由方法里面(ContentType应该设置为图片文件的内容类型):

  var 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('successfully uploaded the image!');
}
});

s3_config.json 文件 :

{
"accessKeyId":"xxxxxxxxxxxxxxxx",
"secretAccessKey":"xxxxxxxxxxxxxx",
"region":"us-east-1"
}

关于javascript - 通过 Node.js 将 base64 编码的图像上传到 Amazon S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7511321/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com