gpt4 book ai didi

java - 将 HTML 模板存储在 NoSQL DB 中

转载 作者:行者123 更新时间:2023-12-01 22:06:20 24 4
gpt4 key购买 nike

我正在 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));

问题是这个确切的脚本在我的本地计算机上运行,​​因此我确信 key 和存储桶名称与正确的文件匹配。

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

所以我的问题是:

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

最佳答案

对于解决方案 1,当您从 S3 下载文件时,将其写入/tmp 目录。

即/tmp/1.html

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

关于java - 将 HTML 模板存储在 NoSQL DB 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32715236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com