我正在使用pink-room's fastlane firebase test lab plugin在快车道上工作,它需要一个gcloud服务帐户才能连接到Firebase并将文件上传到存储桶。
需要该服务帐户,因为该脚本在docker容器中运行,该容器不能为人类所用。
Gcloud命令似乎可以正常工作,因为测试已按预期启动,但是用于上传原始结果的gsutil命令失败。
加载此服务帐户后,gsutil命令会停止运行,因为它们会抛出ConfigParser.ParsingError
“文件包含解析错误”。
这是我尝试执行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
有人知道此错误来自何处,如何解决?
答案 0 :(得分:2)
您说您的boto文件只有两行,但是根据您的错误消息,我认为情况并非如此:)我正在猜测要么其中存在空白没有看到(某些Unicode字符可能无法在编辑器中正确呈现?),或者您没有完全按照文件中显示的内容复制/粘贴内容。
找到类似的问题in this blog post后,我注意到您看到的错误将打印出发现的每个有问题的行的 entire 内容。它说它正在打印第3行(如果boto文件只有2行,那是不可能的),但没有显示gs_service_key_file =
文本。我想您的boto文件中的gs_service_key_file =
和/build/project-0/...
之间会有换行符。