首页 > 解决方案 > 为什么在 csv 文件上传输 GCP 失败,错误日志在哪里?

问题描述

我正在测试 GCP 中的传递函数:

这是csv中的开放数据,https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2018-financial-year-provisional/Download-data/annual-企业调查 2018 年财务年度临时 csv.csv

我在 GCP 中的配置:

在此处输入图像描述

转账失败如下:

在此处输入图像描述

问题一:为什么转账失败?

问题2:错误日志在哪里?

非常感谢。

[更新]:

我检查了日志历史记录,没有捕获任何内容:

在此处输入图像描述

[更新 2]:

错误详情:

详细信息: URL 列表中的第一行必须是 TsvHttpData-1.0 但它是:Year,Industry_aggregation_NZSIOC,Industry_code_NZSIOC,Industry_name_NZSIOC,Units,Variable_code,Variable_name,Variable_category,Value,Industry_code_ANZSIC06

如果您选择第三个选项作为源,我在传输服务中注意到:它读取TSV文件的 URL。本质上,TSV、PSV 只是 CSV 的变体,我可以毫无问题地检索源 csv 文件。错误详细信息似乎暗示了那里没有预料到的事情。

标签: google-cloud-platformgoogle-cloud-storagedata-transfer

解决方案


问题是,在您的示例中,您指向一个数据文件作为传输源。如果我们阅读有关 GCS 传输的文档,我们会发现我们必须指定一个文件,其中包含我们要复制的目标 URL 的标识。

此文件的格式称为制表符分隔值 (TSV),包含许多参数,包括:

  1. 文件源的 URL。
  2. 源文件的大小(以字节为单位)。
  3. 源文件内容的 MD5 哈希。

您指定的(只是源文件的 URL)...不是必需的。

一种可能的解决方案是使用 gsutil。它可以选择将流作为输入并将该流写入给定对象。例如:

curl http://[URL]/[PATH] | gsutil cp - gs://[BUCKET]/[OBJECT]

参考:


推荐阅读