从播放目录结构之外直接投放文件(Direct serving files from outside

2019-09-17 14:06发布

ellou”玩家

我需要箱子定制CDN对于小的应用程序的目的样的解决方案,不知道什么是服务文件直接播放的最佳途径,但不是下放置public应用程序的目录? 我需要访问FTP上传文件夹中。

比方说,我的应用程序运行从/home/myaccount/playapps/app201文件夹,可在http://somedomain.tld地址。 我也有文件夹指向一个共同的FTP帐户/home/myaccount/ftp_upload

什么是服务文件的最好方法/home/myaccount/ftp_upload/folder_1/sub_2/file.txthttp://somedomain.tld/ftp_upload/folder_1/sub_2/file.txt (没有任何检查和限制)?

  • 一种选择是使用HTTP服务器,并设置独立的hostaliasftp folder ,但我想,以避免在某些节点上使用额外的服务器( 参考: 如果你正在寻找的服务器解决方案,检查样本的配置 )。
  • 二是写Application.serve(String filepath)动作+路线,但我不需要提供文件服务之前任何其他操作。 就是用这种方法是否有意义?

是否有其他选项可用?

(这个问题也可在谷歌论坛 )

Answer 1:

如果您的播放文件夹和FTP文件夹是在同一台主机上,可以使用公共资产。 从文档 :

请注意,如果你定义外资产映射“公”,你需要告诉SBT一下,例如,如果你想:

GET  /assets/*file               controllers.Assets.at("/public", file)
GET  /liabilities/*file          controllers.Assets.at("/foo", file)

你应该在添加此项目设置project/Build.scala

// Add your own project settings here
playAssetsDirectories <+= baseDirectory / "foo"

我没有测试它,但它是值得一试:-)



文章来源: Direct serving files from outside of Play directories structure