2012-04-27 40 views
0

如何檢查blobstore file used for writing是否已完成並準備好閱讀?如何檢查blobstore文件是否可讀

我是否試圖打開該文件並捕獲FinalizationError,請嘗試get_blob_key或者是否有files.is_readable(blobstore_file_name)方法?

UPDATE:

我好像寫了一個令人困惑的問題,所以我就畫一個背景圖片。

我正在生成一個文件,使用file api與多個後臺任務。該文件在完成之前不可讀。

我想顯示正在生成的文件列表,並在準備就緒時顯示每個文件的下載鏈接。

將「finalized」的布爾屬性添加到引用這些文件的實體中,只是爲了表明後臺進程已完成,聽起來很愚蠢。

還有其他一些情況下,我想檢查文件的狀態,而不會繼續存儲每個最終文件的指示器。

+0

你確定該文件使用管理控制檯存儲在Blobstore中,所以你可以得到blobkey? – 2012-04-27 18:55:34

+0

我不想手動執行此操作,我正在尋找一種確定已用於寫入的文件是否已完成並準備好讀取的已批准方法。 – 2012-04-27 19:20:56

+0

:例如,如果您可以正確獲取密鑰(或將您的存儲文件下載到計算機中),則可以獲取密鑰,以檢查它是否正確存儲。 – 2012-04-27 19:25:35

回答

0

實際上,FinalizationError只能在致電finalize()時才能拋出,所以很可能你在嘗試open()文件時將無法得到它。

你寫完你的文件後,您可致電finalize()或使用close(finalize=True)

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

,你的文件應該是供以後閱讀的權利。

請告訴我們,如果你使用這種方法有任何問題。

+0

你不回答我的問題; P我不想關閉/確定文件。我要檢查它是否已經關閉並準備好閱讀** – 2012-05-15 15:31:51