直接从Play目录结构外部提供文件

时间:2012-05-28 16:28:34

标签: playframework cdn playframework-2.0

ellou'玩家

我需要创建自定义CDN - 就像小应用程序一样的解决方案,并想知道直接使用Play提供文件的最佳方法是什么,但不是放在应用程序的public目录下?我需要访问FTP上传文件夹。

假设我的应用从/home/myaccount/playapps/app201文件夹运行,可在http://somedomain.tld地址获取。我还有一个普通的FTP帐户,文件夹指向/home/myaccount/ftp_upload

将文件/home/myaccount/ftp_upload/folder_1/sub_2/file.txt作为服务的最佳方式是什么? http://somedomain.tld/ftp_upload/folder_1/sub_2/file.txt(没有任何检查和限制)?

  • 一种选择是使用HTTP服务器并为host设置单独的aliasftp folder,但我希望避免在某些节点上使用其他服务器( ref:< / strong> 如果您正在寻找服务器解决方案,请查看sample config )。
  • 其次是编写Application.serve(String filepath)动作+路由,但在提供文件之前我不需要任何其他操作。使用这种方法有意义吗?

还有其他选择吗?

Google Groups

也提供了这个问题

1 个答案:

答案 0 :(得分:2)

如果您的Play文件夹和FTP文件夹位于同一主机上,则可以使用公共资源。来自documentation

注意,如果您在“public”之外定义资产映射,则需要告知 关于它,例如如果你想:

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"

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