Playframework 在何处放置pdf文件-在执行期间创建-供用户下载

Playframework 在何处放置pdf文件-在执行期间创建-供用户下载,playframework,Playframework,如果使用应用程序中的链接,我的play应用程序的控制器功能可以创建pdf文件。这在开发模式下运行得非常好。但是,我需要知道在哪里保存该pdf文件,这样如果我的应用程序在生产模式下运行,那么该pdf文件将能够由我的控制器的功能创建,并且也可以下载。我在考虑使用: import com.typesafe.sbt.packager.MappingsHelper._ mappings in Universal ++= directory(baseDirectory.value / "public

如果使用应用程序中的链接,我的play应用程序的控制器功能可以创建pdf文件。这在开发模式下运行得非常好。但是,我需要知道在哪里保存该pdf文件,这样如果我的应用程序在生产模式下运行,那么该pdf文件将能够由我的控制器的功能创建,并且也可以下载。我在考虑使用:

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

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

有自定义文件夹声明的答案,如果您正在从
bin
文件夹运行应用程序,并且您正在使用
进程
,则命令将在一个文件夹上执行;然而,我认为对于更清洁的体系结构,您应该这样做:

不要将PDF保存在应用程序运行的位置

这应该是显而易见的,因为对于每次部署,您都必须将pdf复制粘贴到新的部署文件夹中。而且,如果只生成一个pdf,则不需要添加文件夹。最简单的形式是使用第三方服务(例如,
awss3
);然后,您可以将pdf保存到一个唯一的地址(在S3中称为
Bucket
);具有唯一的格式名称(例如,
useraname date.pdf

在S3中,您可以使用一个干净的路径行
username/billing/month/
;然后你可以在那里添加文件;所以你要做三件事:1。您正在组织pdf存储和2。您可以创建存储的历史记录。3.您知道您可以访问正确的pdf的月份


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

有自定义文件夹声明的答案,如果您正在从
bin
文件夹运行应用程序,并且您正在使用
进程
,则命令将在一个文件夹上执行;然而,我认为对于更清洁的体系结构,您应该这样做:

不要将PDF保存在应用程序运行的位置

这应该是显而易见的,因为对于每次部署,您都必须将pdf复制粘贴到新的部署文件夹中。而且,如果只生成一个pdf,则不需要添加文件夹。最简单的形式是使用第三方服务(例如,
awss3
);然后,您可以将pdf保存到一个唯一的地址(在S3中称为
Bucket
);具有唯一的格式名称(例如,
useraname date.pdf

在S3中,您可以使用一个干净的路径行
username/billing/month/
;然后你可以在那里添加文件;所以你要做三件事:1。您正在组织pdf存储和2。您可以创建存储的历史记录。3.您知道您可以访问正确的pdf的月份


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

我喜欢你的回答。但是,由于我们使用的是Docker容器,所以我们决定在应用程序文件夹外为prod和dev使用绝对文件夹,因此只有controller方法才能访问该文件夹。谢谢,我喜欢你的回答。但是,由于我们使用的是Docker容器,所以我们决定在应用程序文件夹外为prod和dev使用绝对文件夹,因此只有controller方法才能访问该文件夹。谢谢