如何将base64映像从客户端传输到服务器或从s3存储桶下载二进制文件/ base64?

Noo*_*ter 9 twitter base64 multipartform-data amazon-web-services node.js

在我的应用程序中,我将照片直接从客户端发送到s3,使用类似于建议的heroku推荐:https://devcenter.heroku.com/articles/s3-upload-node

主要的好处是它节省了服务器成本(我假设因为没有使用诸如multipart-y表单数据之类的东西将块发送到服务器).

但是,我希望能够将这些图像分享到Twitter,其中说明了这一要求:

确保POST是multipart/form-data请求.上传文件的原始二进制文件(媒体参数)或其base64编码的内容(media_data参数).尽可能使用原始二进制文件,因为base64编码会导致更大的文件大小

我已经尝试将客户端s3上传所需的base64发送回服务器,但是根据照片大小 - 我经常收到一个错误,它太大而无法发回.

TLDR

我是否需要使用mulitparty/multipart表单数据将照片发送到我的服务器,这样我就可以使用所需的base64 /二进制文件将照片分享给twitter,还是可以继续将照片从我的客户端发送到s3?

然后,不知何故,在服务器上有效地获得所需的base64 /二进制文件(可能使用请求模块),然后我可以将图像发送到twitter?

dol*_*les 2

无需大量更改客户端代码即可实现此目的的一种相当简单的方法是使用S3 事件。S3 事件可以触发 AWS 中的 lambda 函数,该函数可以将图像发布到 Twitter。您可以使用 lambda 函数内的任何库来高效地发布到 Twitter。不确定您是否想使用 Lambda 还是坚持使用 Heroku。