2011-09-13 3 views
2

pygtkプログラムは、他のドキュメントを参照する可能性のあるXMLベースのドキュメントのエディタです。ウェブからのデータをキャッシュするための良い方法(プラットフォームに依存しない場所)

ファイルを読み込むと、参照が解決され、ドキュメントが読み込まれます(既に非同期に読み込まれています)。しかし、このプロセスはエディタを起動するたびに繰り返されるので、ユーザと参照先のドキュメントをホストしているサーバの両方の帯域幅と時間を節約するために、いくつかのローカルキャッシュが必要です。

これは一般的なやり方ですか?私の考えでは、これまでのようになります。

  • は何とか(プラットフォームに依存しない)キャッシュディレクトリへのパスを取得
    • 任意のアイデア?
  • ファイル名はmd5(url)です。
  • すでにキャッシュファイルがあり、それが$cache_policy_ageよりも古い場合はそれを使用します。それ以外の場合はHTTPを使用して(urllibできますか?)、ダウンロードされてから変更されているかどうかを確認してください。
+1

あなたがこの質問をd​​ownvoteする理由は、少なくともコメントするのは良いことでしょう。 – rumpel

+0

私はupvoted - 質問に記載されている実装が悪い考えであっても(それはそうではありません!)、それは完璧に形成された質問です。私はそれがなぜ投票されたのか分かりません。 – Vicky

答えて

3

Personnaly私は、それが現在のユーザーのconfig /キャッシュのほとんどは自分のホームディレクトリに保存され、UNIXのエンバイロメントではかなり一般的ですが、ディレクトリ名の使用は、ドットで始まるキャッシュのために良い場所を見つけるためにos.path.expanduserを使用"隠された"ディレクトリを作ります。あなたのHTTPサーバは直前に入っを提供していることを確認する必要がありますしかし

import urllib 
u = urllib.urlopen("http://www.google.com") 
u.info().get("last-modified") 

directory = os.path.join(os.path.expanduser("~"), ".my_cache") 

遠方のファイルの更新日時については、あなたがurlibを使用することができますように

私が何かをするだろう変更されたHTTPヘッダーと、それは一貫した値です! (これは必ずしもそうではありません)

関連する問題