如何使用JavaScript从S3缓冲区数据中获取HTML模板文件?
我将一个HTML文件加载到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
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)