当前位置: 首页 > 知识库问答 >
问题:

如何使用JavaScript从S3缓冲区数据中获取HTML模板文件?

汤嘉平
2023-03-14

我将一个HTML文件加载到S3存储桶中。此文件旨在用作电子邮件正文的模板。

我使用了这个问题的一个答案(使用节点fs从aws s3 bucket读取文件)来帮助我从bucket中取出文件。现在看来,我有缓冲区数据,我需要转换回HTML,或者字符串版本也可以。到目前为止,我尝试过的事情都没有成功。。。

下面是我获取模板的代码:

async getEmailTemplate() {
    const s3 = new AWS.S3({ apiVersion: '2006-03-01' });
    const params = {
      Bucket: 'myBucket',
      Key: 'templates/email.html',
    };
    const template = await s3.getObject(params).promise();
    return template;
}

当我记录“模板”返回的数据时,它看起来是这样的。。。我需要模板之类的东西。身体toString('latin1')。。。

console.log src/services/tests/unit/Controller.test.js:266
    {
      AcceptRanges: 'bytes',
      LastModified: 2020-05-28T19:36:23.000Z,
      ContentLength: 22745,
      ETag: '"1bcc123ba55b5b878109436c1274b94b"',
      ContentType: 'text/html',
      Metadata: {},
      Body: <Buffer 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0a 3c 68 74 6d 6c 20 78 6d 6c 6e 73 3a 76 3d 22 75 72 6e 3a 73 63 68 65 6d 61 73 2d 6d 69 63 72 6f 73 6f ... 22695 more bytes>
    }

为了避免产生影响,模板包含类似${data.firstName}的js模板文本。目前,当模板在javascript文件中用``进行硬编码时,电子邮件被正确填充和发送。但我正在尝试更新代码,从外部源中提取模板。

感谢您抽出时间阅读我的问题。。。有人对我有什么建议吗?:)

共有1个答案

越运锋
2023-03-14

如果你将“body”改为“body”,它应该可以工作,这里有一些与你的代码几乎相同的旧代码,并且运行良好:

 let { Body } = await s3.getObject(params).promise();
 return Body.toString(encoding)
 类似资料:
  • 问题内容: 在编写用于OpenGL库的Matrix类时,我遇到了一个问题,即使用Java数组还是使用Buffer策略存储数据(JOGL为Matrix操作提供直接缓冲区复制)。为了对此进行分析,我编写了一个小型性能测试程序,该程序比较了Arrays vs Buffers和Direct Buffers上循环和批量操作的相对速度。 我想在这里与您分享我的结果(因为我发现它们很有趣)。请随时发表评论和/或

  • 问题内容: 我正在尝试从FTP服务器读取文件。该文件是一个文件。我想知道在套接字打开的情况下是否可以对此文件执行操作。我试图按照什么分两个问题,提到的阅读文件,而不写入磁盘和读取从FTP文件,而无需下载,但没有成功。 我知道如何提取下载文件上的数据/工作,但不确定是否可以即时执行。有没有一种方法可以连接到站点,在缓冲区中获取数据,还可以提取某些数据并退出? 尝试StringIO时出现错误: 我只需

  • 我需要从服务绑定模板数据变量。服务使用HTTP检索JSON格式的数据。我得到了正确的数据,但是因为请求是如此的异步返回服务总是未定义的。 如何将异步数据销售到模板中?不使用回调? AppComponent: 菜单提供者: 月经量: 模板:

  • 本文向大家介绍如何使用JavaScript从* .CSV文件读取数据?,包括了如何使用JavaScript从* .CSV文件读取数据?的使用技巧和注意事项,需要的朋友参考一下 要使用JavaScript读取.CSV,请使用开源CSV解析器Papa Parser。以下是功能- 开源的 使用多线程CSV解析器解析数百万个数据 支持多种网络浏览器 使用解析器,您可以轻松地跳过注释字符 假设您的CSV文件

  • 我的目标是用扩展名解析协议缓冲区文件。pb。一串在Mac上使用自制软件下载Protobuff。运行protoc--版本,并具有libprotoc 3.1.0版本。 但当我运行Python时,它会说找不到模块。我改变了主意。pb文件名到\u pb2。py并在Python脚本中导入模块。 我正在使用谷歌文档,但仍然没有任何运气。我在编译Protobuf时也遇到了问题。so文件通过Python。我只是无

  • 问题内容: 我正在寻找使用python从s3的多个分区目录中读取数据的方法。 data_folder / serial_number = 1 / cur_date = 20-12-2012 / abcdsd0324324.snappy.parquet data_folder / serial_number = 2 / cur_date = 27-12-2012 / asdsdfsd0324324.