私はappengineアプリケーションでscalaとscalateテンプレートシステムを試しています。デフォルトでは、scalateはコンパイルされたテンプレートをファイルシステムに書き込もうとします。今、明らかにこれはappengineでは機能しませんし、テンプレートをプリコンパイルする方法もあります。しかし、開発中にこの制限をオフにすることが可能かどうかは疑問でした。それはコンパイル/テストサイクルをかなり遅くします。あなただけの自由なJVM/Webアプリケーションのホスティングを探しているなら、私は強くAppEngineのを使用しないことをお勧めするApp Engine開発サーバーのファイルシステムに書き込む
答えて
...
は、その後、Stax.netは、より良い代替手段を提供しています。他の機能の中でも、ファイルシステムに書き込んでスレッドを生成することができます。
、彼らは非常に他のScalaの開発者:)
Stax.netに向けて収容しているので、彼らはまた、内部的にスカラを使用:http://www.stax.net/
(注:私はスタックスにaffilliated決してよ)
私は現在、同じ制限があるwebpyを使用しています。テンプレートシステムはパーサーモジュール(ブロック)にアクセスできず、Google App Engine上のファイルシステムに書き込むことができないため、テンプレートをプリコンパイルする必要があります。
この厄介な問題は、特定のディレクトリのファイルが変更されるたびに、そのファイルのプリコンパイルをトリガするPythonスクリプトで解決しました。
私はOSX上だと私は FSEventsを使用していますが、私はあなたが他のプラットフォーム上の他のソリューション/ライブラリ(Linuxでは incron、Windows上 FileSystemWatcher)を見つけることができると信じて:Pythonのdevに
from fsevents import Observer
from fsevents import Stream
from datetime import datetime
import subprocess
import os
import time
PROJECT_PATH = '/Users/.../Project/GoogleAppEngine/stackprinter/'
TEMPLATE_COMPILE_PATH = os.path.join(PROJECT_PATH,'web','template.py')
VIEWS_PATH = os.path.join(PROJECT_PATH,'app','views')
def callback(event):
if event.name.endswith('.html'):
subprocess.Popen('python2.5 %s %s %s' % (TEMPLATE_COMPILE_PATH ,'--compile', VIEWS_PATH) , shell=True)
print '%s - %s compiled!' % (datetime.now(), event.name.split('/')[-1])
observer = Observer()
observer.start()
stream = Stream(callback, VIEWS_PATH, file_events=True)
observer.schedule(stream)
while not observer.isAlive():
time.sleep(0.1)
実際に、devサーバを修正してファイルシステムに書き込むことができます。 –
私は自分のビルドプロセスをテンプレートをコンパイルするように設定していますが、それはとにかくプロダクションビルドに必要です。私がテンプレートを変更するたびに待つのを避けることを望むなら、私はこの仕事を得ることができないのであれば大惨事ではありません。投稿してくれてありがとう、FSEventsについて知りませんでした(私もOSXを使っています)、それは他のもののために便利になるかもしれません! – nickclare
@nickあなたは大歓迎です、それは本当に便利で速いです。実際にコンパイルしていることを忘れてしまいます。 – systempuntoout
devのサーバーを使用している場合、サーバーあなたは、私は、ファイルにログを記録するためにそれを使用することができます:
if os.environ.get('SERVER_SOFTWARE','').startswith('Dev'):
from google.appengine.tools.dev_appserver import FakeFile
FakeFile.ALLOWED_MODES = frozenset(['a','r', 'w', 'rb', 'U', 'rU'])
あなたはバイナリファイルまたはUnicodeを書きたい場合は、そのリストに「WB」や「WU」を追加する必要があります。たぶん、Javaのdevサーバーに相当するものがあります。
- 1. Google App Engine開発サーバーのカスタムHighRepJobPolicy
- 2. App Engine Python開発サーバー+ Taskqueue +バックエンド
- 3. Google App Engine(Java)のImageにテキストを書き込む
- 4. ASP.NETファイルシステムにPDFを書き込む
- 5. Google App Engine - 開発サーバーと運用サーバーの違い
- 6. Metro Style Appのファイルシステムにログファイルまたはテキストファイルを書き込む方法
- 7. ファイルをブロブストアに直接書き込むときにApp Engineに問題が発生する
- 8. Google App Engine開発サーバーをプロダクションサーバーとして使用
- 9. サーバー上のXMLファイルに書き込む
- 10. Google App Engine開発サーバーのPyCrypto「ImportError:名前blockalgoをインポートできません」
- 11. Google App EngineでのJython開発
- 12. App Engineの開発環境 - db.get()ReferencePropertyクエリランダムエラー
- 13. Webサーバーにファイルを書き込む - ASP.NET
- 14. Google App Engine:開発と開発の設定
- 15. MS SQL Server 2005、ファイルシステムにvarbinaryを書き込む
- 16. Chrome拡張機能をファイルシステムに書き込む
- 17. ファイルシステムの開発
- 18. Androidのファイルシステムからリソースを書き込む
- 19. MS SQLサーバーにトリガーを書き込むのは、MS Accessに書き込むのと同じですか?
- 20. 公開アクセス可能なサーバーにkmlファイルを書き込む方法は?
- 21. GoogleのApp Engineと私はApp EngineのPythonの開発サーバーを介して、ほとんどのサーバーをセットアップしようとしている
- 22. Google App EngineデータストアにZIPデータフィードを読み込む
- 23. App Engineでxlrdを使ってファイルを読み込むには
- 24. Python 2.5のファイルとしてGoogle App Engineブロブストアに書き込む適切な方法
- 25. セッション中にサーバーに書き込むためのPHPユーザー権限
- 26. Unityのサーバー上のテキストファイルに書き込む
- 27. ファイルシステムを破損させずにディスクにrawデータ "署名"を書き込む
- 28. Android:カメラのデータをストリームしてサーバーに書き込む
- 29. C#、サーバー上のWebアプリケーションサーバーBにファイルを書き込む
- 30. Google App Engineの開発と生産環境の設定
私はまだ自分の選択肢を評価していますが、少なくとも今のところ、stax.netには私が探しているものすべてがありません。新しいAppEngineチャンネルAPI、使いやすいmemcacheサービス、画像サービスなどにより、AppEngineは面白いプラットフォームになりました。 AppEngineがうまく行かない場合、可能であれば、私はむしろEC2に直接行くだろう。ウェブサイトからStaxのようなものが得られるかもしれませんが、その場合は再評価する必要があります – nickclare