Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript从S3缓冲区数据中获取HTML模板文件?_Javascript_Amazon Web Services_Amazon S3_Buffer_Html Templates - Fatal编程技术网

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

如何使用JavaScript从S3缓冲区数据中获取HTML模板文件?,javascript,amazon-web-services,amazon-s3,buffer,html-templates,Javascript,Amazon Web Services,Amazon S3,Buffer,Html Templates,我将一个HTML文件加载到S3存储桶中。此文件旨在用作电子邮件正文的模板 我使用了这个问题()中的一个答案来帮助我从桶中取出文件。现在看来,我有缓冲区数据,我需要转换回HTML,或者它的字符串版本也可以。到目前为止我试过的东西都没用 下面是获取模板的代码: async getEmailTemplate() { const s3 = new AWS.S3({ apiVersion: '2006-03-01' }); const params = { Bucket: 'm

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

我使用了这个问题()中的一个答案来帮助我从桶中取出文件。现在看来,我有缓冲区数据,我需要转换回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;
}
当我记录“模板”返回的数据时,它显示如下。。。我需要像template.body.toString('latin1')这样的东西

console.log src/services/tests/unit/Controller.test.js:266
{
AcceptRanges:'字节',
最后修改:2020-05-28819:36:23.000Z,
内容长度:22745,
ETag:“1BC123BA55B5B878109436C1274B94B”,
ContentType:'text/html',
元数据:{},
正文:
}
如果有区别,模板包含类似${data.firstName}的js模板文本。当前,当模板在javascript文件中用``硬编码时,电子邮件被正确填充和发送。但是我尝试更新代码,从外部源中提取模板

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

如果您将“body”更改为“body”,它应该可以工作,这里有一些与您的代码几乎相同的旧代码,并且工作正常:

 let { Body } = await s3.getObject(params).promise();
 return Body.toString(encoding)

天哪,就是这样!我现在有点尴尬。。。但是谢谢你。:-)
 let { Body } = await s3.getObject(params).promise();
 return Body.toString(encoding)