Google api Google Bigquery API tables.insert from CSV为本地文件提供无效的源URI

Google api Google Bigquery API tables.insert from CSV为本地文件提供无效的源URI,google-api,google-bigquery,Google Api,Google Bigquery,我有一个CSV文件,我想使用tables.insert Google Bigquery API调用上载该文件,这允许我使用externalDataConfiguration,在这里我可以上载CSV文件,在Bigquery中自动创建表,然而,我不断得到无效的源URI返回-我上传的文件位于我的web服务器上,可以公开访问-我最初认为这是权限,因为我在Postman上测试它,但是,将其移动到我的web服务器时,我得到了完全相同的响应 使用的旋度示例如下: { "externalDataConfig

我有一个CSV文件,我想使用tables.insert Google Bigquery API调用上载该文件,这允许我使用externalDataConfiguration,在这里我可以上载CSV文件,在Bigquery中自动创建表,然而,我不断得到无效的源URI返回-我上传的文件位于我的web服务器上,可以公开访问-我最初认为这是权限,因为我在Postman上测试它,但是,将其移动到我的web服务器时,我得到了完全相同的响应

使用的旋度示例如下:

{
  "externalDataConfiguration": {
    "sourceUris": [
      "https://xxxx/datasets/testing/claims.csv"
    ],
    "sourceFormat": "CSV",
    "csvoptions": {
        "fieldDelimiter": ",",
        "skipLeadingRows": "1"
    },
    "autodetect": true
  },
  "tableReference": {
    "tableId": "TEST_THIS_UPLOAD3"
  }
}
我已经用google sheets数据集对此进行了测试,效果很好,但是CSV给了我一些问题-回答如下:

{
  "error": {
    "code": 400,
    "message": "Invalid source URI: https://xxx/datasets/testing/laims.csv",
    "errors": [
      {
        "message": "Invalid source URI: https://xxx/datasets/testing/claims.csv",
        "domain": "global",
        "reason": "invalid"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }
}

BigQuery不支持您尝试使用的HTTP上的URL

BigQuery在此外部导入中支持3个源:

  • 云存储URI
  • 谷歌云大表URI
  • 谷歌云数据存储备份
这些URI不是URL,它们指向Google cloud位置中的文件,换句话说:指向Google cloud中数据的完全限定URI


您需要将CSV放入Google云,并在API请求中使用GCS文件位置的URI

非常感谢,我正忙着看这个,将在API中添加另一个步骤,首先将csv上传到云存储,文档非常令人沮丧