Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Google Cloud SQL中使用CURL将数据导出到CSV文件_Curl_Google Cloud Platform_Export To Csv_Google Cloud Sql - Fatal编程技术网

在Google Cloud SQL中使用CURL将数据导出到CSV文件

在Google Cloud SQL中使用CURL将数据导出到CSV文件,curl,google-cloud-platform,export-to-csv,google-cloud-sql,Curl,Google Cloud Platform,Export To Csv,Google Cloud Sql,我在终端中运行CURL时出错。错误如下所示: { "error": { "errors": [ { "domain": "global", "reason": "parseError", "message": "Parse Error" } ], "code": 400, "message": "Parse Error" } } 下面是我的代码: ACCESS_TOKEN="$(gcloud auth application-defaul

我在终端中运行CURL时出错。错误如下所示:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "parseError",
    "message": "Parse Error"
   }
  ],
  "code": 400,
  "message": "Parse Error"
 }
}
下面是我的代码:

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"exportContext":
                {"fileType": "CSV",
                 "uri": "gs://project-initial-db/test_gutil.csv",
                 "databases": ["my_db"] },
                 "csvExportOptions": 
                     {"selectQuery":"SELECT * FROM `trans_channel` INTO OUTFILE "test_gutil.csv" CHARACTER SET "utf8mb4" FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY "\"" ESCAPED BY "\\" LINES TERMINATED BY "\n";"}}' \
   -X POST \
   https://www.googleapis.com/sql/v1beta4/projects/project-11/instances/project-db/export
有人知道这个错误吗

我在Google Cloud SQL上查找关于使用CURL导出到CSV的信息,但我只得到了一点信息

仅供参考,我已经设置了环境变量(GOOGLE_APPLICATION_CREDENTIALS),身份验证成功


如果您能提供任何帮助,我将不胜感激。谢谢

您只是在w字段“cvsExportOptions”中缺少了一点东西,它应该是这样的:

"csvExportOptions": 
                 {"selectQuery":"[YOUR_QUERY]"}
您可能有更详细的信息,您还可以使用页面右侧的trytheapi实用程序检查curl是否正确

编辑

从trythisapi实用程序复制api调用,我使用该实用程序进行测试,与它为我工作时完全一样。请尝试用您的数据替换占位符

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{
  "exportContext": {
    "fileType": "CSV",
    "uri": "gs://[YOUR_BUCKET]/[YOUR_PATH_TO_DUMP_FILE]",
    "databases": [
      "[YOUR_DATABASE]"
    ],
    "csvExportOptions": {
      "selectQuery": "[YOUR_QUERY]"
    }
  }
}' \
   -X POST \
   https://www.googleapis.com/sql/v1beta4/projects/[YOUR_PROJECT]/instances/[YOUR_INSTANCE]/export

我添加了“selectQuery”,但是结果还是一样的。好吧,我想我已经成功了。我相信,在您的代码中,即答案中链接中的示例代码中,一定有一些无法正确解析的不可见字符。我所做的是在trytheapi实用程序中测试我的api调用,在看到它工作之后,我复制了它,并将其粘贴到参数“-data”中。我将使用适用于我的确切代码(个人数据除外)编辑我的答案。为了您的利益,您应该将您的个人数据(如项目名称和实例名称)替换为占位符,以便您不会与所有人共享。