0

書き込みに使用されたblobstoreファイルがファイナライズされ、読み取りの準備ができているかどうかを確認するにはどうすればよいですか?

私はファイルを開いてキャッチしようとしますかFinalizationError、しようとしますかget_blob_key、それとも方法がありfiles.is_readable(blobstore_file_name)ますか?

アップデート:

わかりにくい質問を書いたようですので、背景絵を描きます。

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

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

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

また、完成したファイルごとにインジケーターを保存することを自分自身に任せずに、ファイルの状態を確認したい場合もあります。

4

1 に答える 1

0

実際には、FinalizationErrorへの呼び出し中にのみスローされる可能性があるため、ファイルにアクセスfinalize()しようとしているときに取得できない可能性が最も高いです。open()

ファイルの書き込みが完了したら、次を呼び出すfinalize()か使用できますclose(finalize=True)

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

その直後にファイルを読み取れるようにする必要があります。

このアプローチを使用して問題が発生した場合は、お知らせください。

于 2012-05-05T20:38:11.563 に答える