Sid*_*rth 13 python amazon amazon-s3 boto amazon-web-services
我正在尝试使用boto连接到S3,但它似乎失败了.我尝试了一些解决方法,但它们似乎没有用.任何人都可以帮我这个.下面是代码.
import boto
if not boto.config.has_section('Credentials'):
boto.config.add_section('Credentials')
boto.config.set('Credentials', 'aws_access_key_id', AWS_KEY)
boto.config.set('Credentials', 'aws_secret_access_key', AWS_SECRET_KEY)
if not boto.config.has_section('Boto'):
boto.config.add_section('Boto')
boto.config.set('Boto', 'https_validate_certificates', 'False')
boto.config.add_section('aws info')
boto.config.set('aws info','aws_validate_certs','False')
s3 = boto.connect_s3(validate_certs=False)
bucket = s3.get_bucket(Bucket_NAME)
Run Code Online (Sandbox Code Playgroud)
lin*_*nqu 12
可能您的存储桶名称包含一个点,这就是ssl证书验证失败的原因.这是一个非常常见的问题,例如,请参阅此github问题.
不要使用不安全的连接(is_secure=False),而是使用OrdinaryCallingFormat:
import boto
conn = boto.s3.connect_to_region('eu-west-1', calling_format=boto.s3.connection.OrdinaryCallingFormat())
bucket = conn.get_bucket(your_bucket)
Run Code Online (Sandbox Code Playgroud)
您可能需要更新您的AWS区域,例如us-east-1
在 boto3 中,如果您使用的是 s3 客户端,则在创建 s3 客户端时使用 verify=False。例如:
s3 = boto3.client('s3', verify=False)
Run Code Online (Sandbox Code Playgroud)
正如 boto3 文档中提到的,这只会关闭 SSL 证书的验证。仍将使用 SSL(除非 use_ssl 为 False),但不会验证 SSL 证书。
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html
我找到了一个方法,
使用is_secure=False在connect_s3().
添加验证=False
boto3.resource(
"s3",
endpoint_url=<URL>,
aws_access_key_id=<ID>,
aws_secret_access_key=<Key>,
verify=False
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23226 次 |
| 最近记录: |