如何将多个文件作为事务上传到Google云存储桶

use*_*564 3 google-cloud-storage google-bigquery

用例:

将多个文件上传到云存储桶中,然后使用该数据作为bigquery导入的源。使用存储桶的名称作为元数据来驱动数据应进入哪个分片表。

题:

为了防止部分导入到bigquery表中,理想情况下,我想执行以下操作:

  • 将文件上传到暂存区中
  • 验证所有文件均已正确上传
  • 将分段存储桶重命名为其最终名称(例如gs:// 20130112)
  • 触发bigquery导入以将存储桶加载到分片表中

由于gsutil似乎不支持存储桶重命名,有哪些其他方法可以实现此目的?

Mik*_*rtz 5

Google云端存储不支持重命名存储桶,更广泛地说,不支持一次对多个对象进行操作的原子方式。

如果您主要关注的是所有对象都正确上传(而不是确保只有在所有对象上传后才可以看到存储桶内容),则gsutil cp支持-如果任何对象上传失败,它将报告无法上传并退出,并且状态为非零。

因此,可能的实现方式是运行gsutil cp上载所有文件,然后在创建BigQuery表加载作业之前检查gsutil退出状态的脚本。

Google云存储团队的Mike Schwartz