我正在尝试将数据从AWS S3传输到GCS。 我在boto文件中更改了私钥和秘密密钥,当我尝试以下命令获取错误时。
命令:gsutil ls s3:// axz
错误讯息:
追踪(最近一次通话): 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform / gsutil \ gsutil",第22行,in gsutil.RunMain() RunMain中的文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ gsutil.py",第114行 sys.exit(GSLIB。的主。主要()) 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ gslib__main __。py",第383行,主要 perf_trace_token = perf_trace_token) 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ gslib__main __。py",第577行,在_RunNamedCommandAndHandleExceptions中 collect_analytics =真) 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ gslib \ command_runner.py",第299行,在RunNamedCommand中 return_code = command_inst.RunCommand() 在RunCommand中的文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ gslib \ commands \ ls.py",第526行 exp_dirs,exp_objs,exp_bytes = ls_helper.ExpandUrlAndPrint(storage_url) 在ExpandUrlAndPrint中的文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ gslib \ ls_helper.py",第180行 print_initial_newline = FALSE) 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ gslib \ ls_helper.py",第252行,_RecurseExpandUrlAndPrint bucket_listing_fields = self.bucket_listing_fields): IterAll中的文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ gslib \ wildcard_iterator.py",第476行 expand_top_level_buckets = expand_top_level_buckets): 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ gslib \ wildcard_iterator.py",第157行, iter 字段= bucket_listing_fields): ListObjects中的文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ gslib \ boto_translation.py",第380行 对于objects_iter中的键: 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ third_party \ boto \ boto \ s3 \ bucketlistresultset.py",第34行,在bucket_lister中 encoding_type = encoding_type) get_all_keys中的文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ third_party \ boto \ boto \ s3 \ bucket.py",第473行 '',标题,参数) 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ third_party \ boto \ boto \ s3 \ bucket.py",第399行,在_get_all query_args = query_args) 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ third_party \ boto \ boto \ s3 \ connection.py",第668行,在make_request中 retry_handler = retry_handler 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ third_party \ boto \ boto \ connection.py",第1071行,在make_request中 retry_handler = retry_handler) 文件" C:\ Program Files(x86)\ Google \ Cloud SDK \ google-cloud-sdk \ platform \ gsutil \ third_party \ boto \ boto \ connection.py",第1030行,在_mexe 提高前 ** ssl.SSLError:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:590)
答案 0 :(得分:0)
这可能来自您计算机上的SSL证书捆绑包之间的差异 - 这通常是遇到此错误的其他人的问题,例如: https://github.com/aws/aws-cli/issues/1545
如果您无法更新证书捆绑包,则可以尝试通过设置明确禁用证书验证(警告,这可以打开您的中间人攻击) https_validate_certificates Boto选项:
gsutil -o 'Boto:https_validate_certificates=False' [...]
修改强>
您可能还想尝试通过
生成自己的证书包文件
https://github.com/curl/curl/blob/master/lib/mk-ca-bundle.pl
并且看看是否使用gsutil会有所帮助:
gsutil -o 'Boto:ca_certificates_file=C:\path\to\ca-bundle.crt' [...]