4

问候玩家

我需要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 服务器并设置单独的hostor aliasftp folder但我想避免在某些节点上使用其他服务器(参考: 如果您正在寻找服务器解决方案,请检查示例配置)。
  • 其次是编写Application.serve(String filepath)动作+路由,但在提供文件之前我不需要任何额外的动作。使用这种方法有意义吗?

还有其他选择吗?

(这个问题也可以在Google Groups上找到)

4

1 回答 1

2

如果您的 Play 文件夹和 FTP 文件夹在同一主机上,则可以使用公共资源。从文档中:

注意,如果你在“public”之外定义了资产映射,你需要告诉 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"

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

于 2012-05-28T19:13:21.103 回答