在执行时创建的pdf文件放在何处,供用户下载

时间:2018-08-30 21:47:02

标签: playframework

如果使用My Play应用程序中的链接,则该应用程序的控制器功能可以创建pdf文件。在开发模式中,这非常有效。但是,我需要知道将pdf文件保存在何处,因此,如果我的应用程序以生产模式运行,那么该pdf文件将可以通过控制器的功能创建并且也可以下载。我在考虑使用:

import com.typesafe.sbt.packager.MappingsHelper._
    mappings in Universal ++= directory(baseDirectory.value / "public")

在我的build.sbt文件中,并以某种方式将pdf文件保存在那里,但是据我了解,该文件夹主要用于在应用程序运行之前需要的静态资源。我对吗?有更好的方法吗?

1 个答案:

答案 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。

最后一点:可扩展性。您现在可以简单地运行多个应用程序实例,并且两者都可以使用相同的资源。