以下代码可用于生产环境,但是当我尝试在本地设置时失败。
默认主机设置为s3.amazonaws.com。但是无论是否将is_secure设置为True或False,以及是否添加call_format = boto.s3.connection.OrdinaryCallingFormat(),我都会收到S3ResponseError:403禁止。
我尝试在我的S3存储桶上进行搜索,端点为http://bucket_name.s3-website-us-east-1.amazonaws.com。 因此,我通过环境变量将主机设置为s3-website-us-east-1.amazonaws.com。 而且我遇到了SSLError异常,无论is_secure是True还是False,都因为具有calling_format = boto.s3.connection.OrdinaryCallingFormat()而重新连接。由于没有calling_format,但将is_secure设置为True,我也遇到了同样的错误;由于没有calling_format而将is_secure设置为False,S3ResponseError:404 Not Found。
原始代码没有calling_format和is_secure参数。这些就是我在其他帖子中发现的。
import boto
import boto.s3.connection
c = boto.connect_s3(aws_access_key_id='********',
aws_secret_access_key='*********',
host=endpoint)
b = c.get_bucket(bucket_name)