昨天我做了一个深夜编码会议,并创建了一个小的node.js/JS(实际上是CoffeeScript,但CoffeeScript只是JavaScript,所以让我们说JS)应用程序。
目标是什么
1.客户端向服务器发送canvas datauri(png)(通过socket.io)
1.服务器上传图像到亚马逊S3
完成步骤1。
服务器现在有一个字符串a la
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt...
我的问题是:我下一步要将此数据“流式传输”/上传到Amazon S3并在那里创建实际映像,需要执行哪些步骤?
knox https://github.com/LearnBoost/knox看起来像是一个很棒的将东西放到S3的库,但是我缺少的是base64编码的图像字符串和实际上传操作之间的粘合剂?
任何想法,指针和反馈欢迎。
5条答案
按热度按时间pdsfdshx1#
对于那些仍然在这个问题上挣扎的人来说。以下是我在原生aws-sdk中使用的方法**:**
在路由器方法中(
ContentType
应设置为镜像文件的内容类型):s3_config.json文件**:**
ar7v8xwq2#
下面是我看到的一篇文章中的代码,发布在下面:
阅读更多:http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property
制作人:https://medium.com/@mayneweb/upload-a-base64-image-data-from-nodejs-to-aws-s3-bucket-6c1bd945420f
uinbv5nw3#
好的,这一条是如何将画布数据保存到文件的答案
在我的代码中基本上是这样的
fykwrbwg4#
接受的答案工作得很好,但如果有人需要接受任何文件而不仅仅是图像,那么这个regexp工作得很好:
/^data:.+;base64,/
dz6r00yl5#
对于Laravel开发者来说,这应该可以工作
$uploadFile
是要上传到S3服务器的base64编码字符串。而$fileName
应该包含文件扩展名,例如:filename.png
。确保这对应于base64编码的data:image/{filetype}
。请确保在调用此方法之前设置.env文件属性