gsutil ConfigParser.ParsingError: File contains parsing errors

gsutil ConfigParser.ParsingError: File contains parsing errors

我正在使用 pink-room's fastlane firebase test lab plugin 在快车道上工作,它需要一个 gcloud 服务帐户才能连接到 firebase 并将文件上传到存储桶。

需要服务帐户,因为脚本在 docker 容器中运行,不能由人类操作。

Gcloud 命令似乎有效,因为测试按预期启动,但用于上传原始结果的 gsutil 命令失败。

加载此服务帐户后,gsutil 命令停止工作,因为它们抛出 ConfigParser.ParsingError "File contains parsing errors".

这是我在尝试执行 gsutil version -l 以收集更多信息时得到的结果:

Exit status of command 'gsutil version -l' was 1 instead of 0.
Traceback (most recent call last):
  File "/usr/local/gcloud/google-cloud-sdk/platform/gsutil/gsutil", line 22, in <module>
    gsutil.RunMain()
  File "/usr/local/gcloud/google-cloud-sdk/platform/gsutil/gsutil.py", line 116, in RunMain
    import gslib.__main__
  File "/usr/local/gcloud/google-cloud-sdk/platform/gsutil/gslib/__main__.py", line 39, in <module>
    import boto
  File "/usr/local/gcloud/google-cloud-sdk/platform/gsutil/third_party/boto/boto/__init__.py", line 53, in <module>
    config = Config()
  File "/usr/local/gcloud/google-cloud-sdk/platform/gsutil/third_party/boto/boto/pyami/config.py", line 63, in __init__
    self.read(BotoConfigLocations)
  File "/usr/lib/python2.7/ConfigParser.py", line 305, in read
    self._read(fp, filename)
  File "/usr/lib/python2.7/ConfigParser.py", line 546, in _read
    raise e
ConfigParser.ParsingError: File contains parsing errors: /builds/project-0/gcloud
/legacy_credentials/<service account mail>/.boto
    [line  3]: '/legacy_credentials/<service account mail>/adc.json'

这是我的 .boto 文件:

[Credentials]
gs_service_key_file = /builds/project-0/gcloud/legacy_credentials/<service account mail>/adc.json

有人知道这个错误是从哪里来的吗?我该如何解决?

您说您的 boto 文件只有 2 行,但根据您的错误消息,我认为情况并非如此 :) 我 猜测 要么有空格在那里你没有看到(某些 unicode 字符可能无法在你的编辑器中正确呈现,也许?),或者你没有 copy/paste 内容与它们在你的文件中出现的完全一样。

在发现类似问题 in this blog post 后,我注意到您看到的错误会打印出它找到的每个有问题行的 完整 内容。它说它正在打印第 3 行(如果 boto 文件只有 2 行,那应该是不可能的),但不显示 gs_service_key_file = 文本。我猜你的 boto 文件中 gs_service_key_file =/build/project-0/... 之间有某种换行符。