4

ellou'プレーヤー

CDN小さなアプリの目的でカスタムのようなソリューションを作成する必要がありますpublicが、アプリケーションのディレクトリの下に配置せずに、Playで直接ファイルを提供するための最良の方法は何ですか?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

  • 1つのオプションは、HTTPサーバーを使用し、個別にhostまたはaliasを設定することですftp folderが、一部のノードで追加のサーバーを使用することは避けたいと思います(参照: サーバーソリューションを探している場合は、サンプル構成を確認してください)。
  • 2つ目は、アクション+ルートの記述Application.serve(String filepath)ですが、ファイルを提供する前に追加のアクションは必要ありません。このアプローチを使用するのは理にかなっていますか?

他に利用できるオプションはありますか?

(この質問はGoogleグループでも利用できます)

4

1 に答える 1

2

Play フォルダーと 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"

私はそれをテストしませんでしたが、試してみる価値があります:-)

于 2012-05-28T19:13:21.103 に答える