使用gsutil将数据从aws s3传输到gcs - SSL认证错误

时间:2017-06-05 14:48:44

标签: amazon-s3 google-cloud-platform gsutil

我正在尝试将数据从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)

1 个答案:

答案 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' [...]