如果使用My Play应用程序中的链接,则该应用程序的控制器功能可以创建pdf文件。在开发模式中,这非常有效。但是,我需要知道将pdf文件保存在何处,因此,如果我的应用程序以生产模式运行,那么该pdf文件将可以通过控制器的功能创建并且也可以下载。我在考虑使用:
import com.typesafe.sbt.packager.MappingsHelper._
mappings in Universal ++= directory(baseDirectory.value / "public")
在我的build.sbt文件中,并以某种方式将pdf文件保存在那里,但是据我了解,该文件夹主要用于在应用程序运行之前需要的静态资源。我对吗?有更好的方法吗?
答案 0 :(得分:2)
有一个关于自定义文件夹声明here的答案,如果您正在bin
文件夹中运行应用程序,并且正在使用Process
,则命令将在一个文件夹中执行;但是我认为对于更清洁的体系结构,您应该这样做:
不要将PDF保存在应用程序运行的地方
这应该很明显,这仅仅是因为对于每个部署,您都必须复制将pdf粘贴到新的部署文件夹中。而且,如果仅生成一个且只有一个pdf,则无需添加文件夹。最简单的形式是,您可以解决此问题,同时拥有干净的体系结构是使用第三方服务(例如AWS S3
);然后,您可以将pdf保存到唯一的地址(在S3中也称为Bucket
);具有唯一的格式名称(例如useraname-date.pdf
)。
在S3中,您可以使用干净的路径username/billing/month/
行;然后您可以在此处添加文件;因此,您需要做三件事:1.您正在组织pdf存储,并且2.您可以创建存储的历史记录。 3.您知道您可以在哪个月份访问正确的pdf。
最后一点:可扩展性。您现在可以简单地运行多个应用程序实例,并且两者都可以使用相同的资源。