每当有新文件添加到存储中时,我都想将文件传输到VM中,问题是,只有在上传完成后,才能完成传输。
所以我的问题是:即使上传还在进行,做文件也会出现吗?这意味着,如果我构建一个程序,每秒钟寻找新的文件,它会把文件从gcs传输到VM,即使上传是不完整的,或者当上传完成时,传输就会开始,而不是在上传的时候?
发布于 2019-12-23 14:52:17
Google上传是对象上传的strongly consistent
。这意味着在对象100%上传并完成任何云存储事务管理(例如复制)之前,该对象是不可见的。在上传完成并且您的软件/工具收到成功响应之前,您无法看到或访问对象。
即使上传还在进行中,文件也会出现吗?这意味着,如果我构建一个程序,每秒钟寻找新的文件,它会把文件从gcs传输到VM,即使上传是不完整的,或者当上传完成时,传输就会开始,而不是在上传的时候?
不,在新对象100%可用之前,您的程序不会看到新对象。在中,没有部分上传。
发布于 2019-12-23 14:49:05
除非文件被用户完全上传到指定的桶中,否则文件不会出现在云存储的UI中。
我给您附加了Google平台如何管理Google存储桶这里。中的一致性
您可以使用gsutil
在任何时候列出云存储桶中的所有文件,如声明的这里。
至于您正在开发的应用程序,我强烈建议您使用Google函数和触发器。
在这种情况下,您可以使用google.storage.object.finalize
触发器,以便在每次将新对象上载到一个桶时执行您的函数。您可以看到此应用程序这里。的示例。
云函数将确保在尝试将对象传输到GCE实例之前,桶被正确地上载到桶中。
因此,在完成上传之后,剩下的唯一的事情就是执行gcloud compute scp
,通过scp将文件复制到Google,就像这里声明的那样。
https://stackoverflow.com/questions/59455769
复制相似问题