如何检查blobstore file used for writing是否已完成并准备好阅读?
我是否尝试打开文件并抓住FinalizationError
,尝试get_blob_key
或是否有files.is_readable(blobstore_file_name)
方法?
更新:
我似乎写了一个令人困惑的问题,所以我会画一幅背景图片。
我正在使用具有多个后台任务的file api生成文件。在完成此文件之前,此文件不可读。
我想显示正在生成的文件列表,并在每个文件准备就绪时显示每个文件的下载链接。
将boolean属性“finalized”添加到引用这些文件的实体只是为了表明后台进程已经完成,听起来很愚蠢。
还有其他情况我想检查文件的状态,而不会自己为每个最终文件存储一个指示器。
答案 0 :(得分:0)
实际上,FinalizationError
只能在致电finalize()
时被抛出,所以很可能在尝试open()
文件时你无法获得它。
完成文件编写后,您可以致电finalize()
或使用close(finalize=True)
:
with files.open(file_name, 'a') as f:
f.write(file_data)
f.close(finalize=True)
,您的文件应该可以在此之后阅读。
请告诉我们您是否在使用此方法时遇到任何问题。