【问题标题】:How to check if blobstore file is readable如何检查 blobstore 文件是否可读
【发布时间】:2012-04-27 18:50:04
【问题描述】:

如何检查blobstore file used for writing 是否已完成并准备好阅读?

我是要尝试打开文件并捕获FinalizationError,尝试get_blob_key,还是有files.is_readable(blobstore_file_name) 方法?

更新:

我好像写了一个令人困惑的问题,所以我会画一张背景图片。

我正在使用file api 和多个后台任务生成一个文件。该文件在最终确定之前是不可读的。

我想显示正在生成的文件列表,并在它们准备好时显示每个文件的下载链接。

向引用这些文件的实体添加布尔属性“finalized”只是为了表明后台进程已完成,这听起来很愚蠢。

在其他情况下,我想检查文件的状态,而不是中继自己为每个最终文件存储指标。

【问题讨论】:

  • 您是否确保使用管理控制台将文件存储在 blobstore 中,以便获取 blobkey?
  • 我不想手动执行此操作,我正在寻找一种经认可的方法来确定已用于写入的文件是否已完成并准备好读取。
  • :如果能正确获取密钥(或将存储的文件下载到您的机器中)例如检查它是否存储正确,您可以获得密钥。

标签: python google-app-engine blobstore


【解决方案1】:

实际上,FinalizationError 只能在调用finalize() 时抛出,所以很可能在尝试open() 文件时无法得到它。

完成文件编写后,您可以致电finalize() 或使用close(finalize=True)

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

之后您的文件应该可供阅读。

如果您在使用这种方法时遇到任何问题,请告诉我们。

【讨论】:

  • 你没有回答我的问题;P 我不想关闭/完成文件。我要检查它是否已经关闭并准备好阅读
猜你喜欢
  • 2012-08-07
  • 2011-02-28
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多