使用boto3上传文件到s3桶:证书验证失败

-1 投票
1 回答
43 浏览
提问于 2025-04-14 16:51

我正在使用boto3来上传文件到S3存储桶。

这是我正在使用的代码:

# s3 client initialization
s3_client = boto3.client(
    service_name='s3',
    region_name='us-west-2',
    aws_access_key_id=access_key,
    aws_secret_access_key=secret_key,
    #endpoint_url='https://s3:us-west-2.amazonaws.com',
    verify=True
) 

如果Verify = TRUE,我就会遇到这个错误:

[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:证书链中的自签名证书 (_ssl.c:1000)

如果Verify = False,我就会遇到这个错误:

不安全请求警告:正在向主机 'itd-us-west-2--****-***.s3.us-west-2.amazonaws.com' 发起未经验证的HTTPS请求。强烈建议添加证书验证。请参见: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings warnings.warn(

我只是想确认一下,我是不是做错了什么?

更新:我收到了未经验证的HTTPS请求的警告,但文件还是成功复制了:

def upload_files_to_s3_CLI(files, s3location, s3_folder):
  for file_data in files:
    file_location = file_data['FileLocation']
    file_name = os.path.basename(file_location)
    command = f"aws s3 cp {file_location} s3://{s3location}/{s3_folder} --no-verify-ssl subprocess.run(command, shell=True, check=True)

1 个回答

0

这里有几点需要注意:

  • 主机名里有个拼写错误。应该用句号,而不是冒号。
  • 确保你能用那些凭证在AWS命令行工具上运行这个命令。
  • 你是在代理服务器后面吗?

撰写回答