在接下来的几天里,我必须开始编写一些报告生成功能。我需要 write 调用是原子的,并让我知道存储时是否出现故障。
appengine 上的一项实验性功能允许将 blobstore 用作文件系统。(https://developers.google.com/appengine/docs/java/blobstore/overview)。
我有以下问题:
1) 使用如图所示的文件服务api,是否有任何额外费用?唯一受到影响的配额是 Blobstore 中的数据量吗?
2) 数据是在哪一点实际写入的?我在这个例子中使用 out.close()?
3)在写通道上使用closeFinally()后,可以重新打开并追加数据吗?(不,答案在Create CSV file 并保存到 Blobstore)
4)如果写通道打开了,还能读取数据吗?是否需要最终确定?
5) 写操作是原子的吗?即,在写入写入通道时,是否有可能发生故障并最终丢失数据?
6) 当写入通道未最终确定时,这些数据存储在哪里?
7) 如果未最终确定,写入通道中的数据是否会过期?