javascript - 将 S3 字节数组转换为 base64

标签 javascript node.js

在我的 NodeJS 服务器上,我下载了一个需要嵌入电子邮件中的图像。我的存储桶不是公开的,因此仅使用该链接是行不通的,因为这不是我想要满足此问题或项目要求的解决方案。

我使用的是 HTML 电子邮件,内容如下:

<p>Embedded image: <img src="data:image/jpeg;charset=utf-8;base64,{{url}}" /></p>

所以我从S3下载

s3.getObject(
                          { Bucket: "mybucket", Key: "mykey" },
                          function (error, data) {
                            if (error != null) {
                              console.log("Errror" + error)
                            } else {
                              console.log("Loaded " + data.ContentLength + " bytes")

然后我尝试将 data.body 转换为 UTF-8 base 64

我想的是这样的

"data:image/png;base64," + new String(encoder.encode(data.body), "UTF-8")

但它似乎不起作用,我正在努力定义编码器来做到这一点。

最佳答案

确保您在 data.Body 中获取图像数据。我认为 data.Body 已经是一个缓冲区,您可以按如下方式构造 src URL:

  // Convert Body from a Buffer to a String
    let base64String= data.Body.toString('base64');

    let src = "data:image/jpeg;base64,"+base64String;

关于javascript - 将 S3 字节数组转换为 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57919606/

相关文章:

node.js - Mu2 对比 Mustache.js?我应该使用 Mu2 模块还是 Mustache.js 模块进行 nodejs 模板化

javascript - Watson Conversation node.js 使用 learning_opt_out 创建工作区

node.js - 无法使用 npm 安装 @tensorflow/tfjs-node

javascript - 无法使用 Protractor 从 mailosaur 获取值,尽管使用 node.js 也是如此

node.js - 更改iisnode上的虚拟目录?

javascript - 查找作为该对象的直接或间接子对象的对象数量的有效方法是什么

javascript - 使用 Java 脚本删除 JSON 消息中的动态嵌套元素

javascript - 如何在 kinetic.js 中选择一个对象?

javascript - AngularJS 选择必需

javascript - 如何从 Javascript 同步运行 Ajax 函数?