通过使用GSUTIL -SSL认证错误将数据从AWS S3传输到GCS



我正在尝试将数据从AWS S3传输到GCS。我更改了私钥,并在boto文件中分泌密钥,当我尝试以下命令时,会遇到错误。

命令:gsutil ls s3://axz

错误消息:

追溯(最近的最新通话(: 文件" C: Program Files(X86( Google Google Cloud SDK Google-Cloud-SDK Platform/gsutil gsutil",第22行, gsutil.runmain(( 文件" c:c: program文件(x86( google cloud sdk google-cloud-sdk platform gsutil gsutil gsutil.py",第114行 sys.exit(gslib。 main .main((( 文件" C: Program Files(x86( Google cloud SDK google-cloud-sdk platform gsutil gsutil gslib __.main __. py",第383行, perf_trace_token = perf_trace_token( 文件" C: Program Files(X86( Google Google Cloud SDK Google-Cloud-SDK Platform Gsutil Gslib GSlib __.main __. Py",第577行 collect_analytics = true( 文件" C: Program Files(X86( Google Google Cloud SDK Google-Cloud-SDK Platform Gsutil GSlib GSlib GSlib Command_runner.py",第299行,在RunnamedCommand中 return_code = command_inst.runcommand(( 文件" C: Program Files(X86( Google Google Cloud SDK Google-Cloud-SDK Platform Gsutil GSlib GSlib gslib commands ls.py",第526行, exp_dirs,exp_objs,exp_bytes = ls_helper.expandurlandprint(storage_url( 文件" C: Program Files(X86( Google Cloud SDK Google-Cloud-SDK Platform gsutil GSlib GSlib ls_helper.py.py",第180行, print_initial_newline = false( 文件" C: Program Files(X86( Google Google Cloud SDK Google-Cloud-SDK Platform Gsutil GSlib Gslib ls_helper.py.py",第252行 bucket_listing_fields = self.bucket_listing_fields(: 文件" C: Program Files(X86( Google Google Cloud SDK Google-Cloud-SDK Platform Gsutil GSlib GSlib gslib Wildcard_iterator.py.py",第476行,在iterall中 Expand_top_level_buckets = Expand_top_level_buckets(: 文件" C: Program Files(X86( Google Cloud SDK Google-Cloud-SDK Platform Gsutil GSlib GSlib wildcard_iterator.py.py",第157行,in iter in fields = bucket_listing_fields(: 文件" C: Program Files(X86( Google Google Cloud SDK Google-Cloud-SDK Platform gsutil GSlib GSlib boto_translation.py",第380行,在ListObjects in ListObjects 对于objects_iter中的键: 文件" C: Program Files(X86( Google Cloud SDK Google-Cloud-SDK Platform Gsutil Gsutil Third_party boto boto boto boto s3 bucketlistresultset.py encoding_type = encoding_type( 文件" C: Program Files(x86( Google cloud Sdk google-cloud-sdk platform gsutil gsutil third_party boto boto boto boto s3 bucket.py",第473行,在get_all_keys中 '',标题,参数( 文件" C: Program Files(x86( Google cloud Sdk google-cloud-sdk platform gsutil gsutil third_party boto boto boto boto s3 bucket.py",第399行 query_args = query_args( 文件" C: Program Files(x86( Google cloud Sdk google-cloud-sdk platform gsutil gsutil third_party boto boto boto boto s3 s3 connection.py.py",第668行, retry_handler = retry_handler 文件" C: Program Files(X86( Google Google Cloud SDK Google-Cloud-SDK Platform Gsutil Gsutil Third_party boto boto boto boto boto connection.py.py",第1071行,在make_request中 retry_handler = retry_handler( 文件" C: Program Files(X86( Google Cloud SDK google-cloud-sdk platform gsutil gsutil third_party boto boto boto boto boto connection.py",第1030行,in _mexe 提高前** ssl.sslerror:[ssl:cetifer_verify_failed]证书验证失败(_SSL.C:590(

这可能来自机器上的SSL证书束之间的差异 - 这通常是遇到此错误的其他人的问题,例如https://github.com/aws/aws-cli/issues/1545

如果您无法更新证书捆绑包,也可以尝试明确禁用证书验证(,请警告,这会为您打开Man-Middle攻击(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:pathtoca-bundle.crt' [...]

最新更新