GSUTIL CP 文件延迟

Posted

技术标签:

【中文标题】GSUTIL CP 文件延迟【英文标题】:GSUTIL CP files delayed 【发布时间】:2015-08-01 00:12:43 【问题描述】:

我使用谷歌云中的 GSUTIL 命令行工具将文件从一个 GCS 文件夹复制到另一个 GCS 文件夹,然后进行一些数据处理。最近我在最终目标(BQ 表)中发现了一些数据丢失,当深入挖掘时我发现问题在于文件复制,当我复制大量文件时,3K~5K 例如,似乎有些文件没有复制及时到目标文件夹并开始数据处理,这些文件最终被复制但数据处理为时已晚,我该怎么做才能防止这种情况发生? GSUTIL 命令行工具中的任何标志/配置以确保复制完全完成?我一直在使用的命令: gsutil -m cp gs://folder1/* gs://folder2/

【问题讨论】:

【参考方案1】:

假设 gsutil 命令成功完成(退出状态 0),所有文件都应该被复制,但它们可能不会立即显示在存储桶列表中(GCS 存储桶列表最终是一致的)。如果您的数据处理作业正在通过列出存储桶来查找要处理的文件,这将解释您所看到的情况。为避免此问题,您可以生成您复制的对象名称的清单并将其提供给您的数据处理作业,而不是依赖于存储桶列表。

(存储桶列表最终会显示所有文件,但您不能指望它在上传文件后立即拥有完整列表。)

【讨论】:

以上是关于GSUTIL CP 文件延迟的主要内容,如果未能解决你的问题,请参考以下文章

GSUTIL CP 使用文件大小

从存储到计算实例运行容器的`gsutil cp`不会复制文件

谷歌云存储:gsutil cp -n 不会“跳过现有”或显示正在上传的文件

gsutil cp 通信问题

Gsutil 同步与 cp -n

如何在忽略 .git、.gitignore 等文件的同时执行 gsutil cp -R?