0

私は、世界中の人々が大規模な GAE アプリケーションのテンプレート ファイルをローカル言語に翻訳できるようにする管理プログラムである GAE/Python アプリケーションを持っています (多くのイディオムなどが含まれるため、自動翻訳は使用できません)。テンプレート ファイルはトークン化されており、さまざまな言語のテキスト スニペットが GAE データストアに格納されています (何千ものテンプレート ファイルが含まれています)。

したがって、ファイルをフォルダーに書き込むことができる必要があります。

次のコードがあります。

with open("my_new_file.html", "wb") as fh:
    fh.write(output)

GAE がファイルの書き込みをブロックすることを読みました。それが本当なら、それを回避する方法はありますか?

ファイルを直接書き込むことができない場合、同じことを達成する方法について誰か提案がありますか (たとえば、ファイルをダウンロードしてからアップロードするために何らかのラウンドトリップを行う Web サービスで何かを行います)。

私は GAE/Python の初心者なので、具体的に教えてください。

提案をありがとう。

4

3 に答える 3

2

データストアでGoogle App Engine blobstoreまたはBlobPropertyを使用して、ブロブ/ファイルを保存できます

blobstore を使用する場合 (最大 2GB) https://developers.google.com/appengine/docs/python/blobstore/

データストア BLOB を使用する場合 (最大 1 MB のみ) https://developers.google.com/appengine/docs/python/datastore/typesandpropertyclasses#Blob

于 2012-08-21T17:50:04.917 に答える
0

ファイル API を使用します: https://developers.google.com/appengine/docs/python/googlestorage/overview

通常の Python ファイル API のように使用できる追加のコードを追加します。

with files.open(writable_file_name, 'a') as f:
  f.write('Hello World!')

この特定のリンクでは、Google Cloud Storage (GCS) に関連して説明されていますが、GCS 固有の部分を簡単に置き換えて、blobstore をストレージ バックエンドとして使用できます。

コードは次の場所にあります: http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/api/files/

于 2012-08-22T16:50:52.127 に答える
0

ファイルシステムは多くのクラウド システムで読み取り専用であり、GAE もそうです。OS とマシンが仮想である仮想の世界では、ファイルシステムは何かを保存する場所として最も信頼性が低くなります。

BLOB、Google Cloud Storage、Google ドライブのいずれかを使用するか、さらに設定を進めて Amazon S3 などの外部プロバイダーに保存することをお勧めします。

于 2012-08-21T20:22:02.943 に答える