在 NoSQL 数据库中存储 HTML 个模板

Store HTML template in NoSQL DB

我在 Java 中使用 AWS Lambda/DynamoDb 并希望将 HTML 模板存储到 dynamo 数据库以用于邮寄目的。 我的问题陈述: 我必须使用 HTML 模板向最终用户发送邮件。

我实施的解决方案:

解决方案1:将模板存储在s3中下载模板,更改占位符并邮寄。 解决方案问题 -> 当我在我的本地系统中测试它时,一切正常但是在我将它上传到 lamda 然后执行该功能之后它就不起作用了。

我收到以下错误消息:-

java.io.FileNotFoundException: 1.html (Permission denied)
java.io.FileNotFoundException: 1.html (Permission denied)

我的代码是-

 String bucketName = "abc";
        String key = "xyz/1.html";
        String fileName = "1.html";

        ObjectMetadata s3object = s3Client.getObject(new GetObjectRequest(
                bucketName, key), new File(fileName));

要注意的是,这个脚本在我的本地机器上运行,所以我确信密钥和存储桶名称与正确的文件匹配。

解决方案 2: 将 html 模板存储在 Dynamodb 中,并在需要时替换占位符,然后发送邮件。 由于 Dynamo 数据库是键值数据库,因此不允许使用双引号。所以我需要逃离他们。我可以通过 escaping 模板的双引号保存模板,但是当我需要将它们从数据库中取回然后再次删除所有转义序列时呢? ?这是一个正确的过程吗?如果是,那么如何实现?

所以我的问题是:

  1. 如何实施解决方案 1。
  2. 是否有任何 api 或其他方法可以先转义然后删除 HTML 模板中的转义?
  3. 有没有更好的方法来解决我的问题。

方案一,从S3下载文件时,写入/tmp目录。

即/tmp/1.html

/tmp 是您的 lambda 可以写入的唯一文件系统目录。