2012-04-27 10 views
0

blobstore file used for writingが完成し、読み込みの準備ができているかどうかをチェックする方法?blobstoreファイルが可読であるかどうかを確認する方法

ファイルを開こうとすると、FinalizationErrorをキャッチして、get_blob_keyを試してみるか、files.is_readable(blobstore_file_name)メソッドがありますか?

UPDATE:

私は混乱質問を書いているように見えるので、私は背景絵を描くでしょう。

複数のバックグラウンドタスクを持つfile apiを使用してファイルを生成しています。このファイルは、ファイナライズされるまで読み込みできません。

生成されるファイルのリストを表示し、準備ができたらそれぞれのダウンロードリンクを表示します。

これらのファイルを参照するエンティティにブール値プロパティ「finalized」を追加すると、バックグラウンドプロセスが終了したことを示すだけで、愚かに聞こえます。

また、ファイナライズされたファイルごとにインジケータを保存することなく、ファイルの状態を確認したい場合があります。

+0

あなたはファイルが管理コンソールを使用してブロブストアに保存されていることを確認しているので、ブロブキーを取得できますか? –

+0

私は手動でやりたいとは思っていません。私は、書き込みに使用されたファイルがファイナライズされ、読み込みの準備ができているかどうかを判断する認可された方法を探しています。 –

+0

:鍵を正しく取得できれば(または保存したファイルをマシンにダウンロードするなど)、鍵が正しく格納されているかどうかを確認できます。 –

答えて

0

実際にはfinalize()への呼び出し中にFinalizationErrorを投げることができるので、ファイルをopen()にしようとするとほとんどの人はそれを得ることができません。

あなたのファイルを書き終えた後、あなたはfinalize()を呼び出すか、close(finalize=True)を使用することがあります。

with files.open(file_name, 'a') as f: 
    f.write(file_data) 
    f.close(finalize=True) 

と、あなたのファイルは、その直後読み取るための利用可能であるべきです。

この方法で問題が発生した場合は、教えてください。

+0

私の質問に答えていません; Pファイルをクローズ/ファイナライズしたくありません。私はすでに**閉鎖され、読書の準備ができているかどうかチェックする –