谷歌云存储上文件列表的一致性



我将开发一个应用程序,在谷歌云存储上创建文件并由其他进程读取。

由于某些原因(例如文件太大(,文件创建可能会延迟,并且云存储上可能存在不完整的文件(正在写入(。

我必须考虑防止阅读不完整的文件。但是根据这个页面,Bucket列表是非常一致的。新创建的文件可以在创建文件后立即列出。

从上面的文档中,我的猜测是,在创建完成之前,新创建的文件不会列出,不完整的文件不会列出。

我的猜测是真的吗?如果没有,我应该如何防止读取不完整的文件?

您的猜测是正确的,bucket中的写入是原子的(当您上传文件时,内容在被推送到bucket之前被缓存。(您可以在文档中看到这一点

  • 写入后读取(即原子操作,无瞬态(

因此,您不必担心文件不完整。

我从互联网上下载了一个大文件(512 MB(,然后上传到GCS。

我通过使用命令列出bucket对象(在上传过程中(进行了测试

gsutil ls gs://bucket_name

直到上载过程成功后,才列出新对象。

因此,你的猜测是正确的。

最新更新