Python 3.x 使用Boto3';虚拟';S3兼容服务的地址(DNS名称中的bucket)
我已经尝试了很长时间在DigitalOcean上使用支持CDN的URL和Boto3 我正在使用Python 3.x 使用Boto3';虚拟';S3兼容服务的地址(DNS名称中的bucket),python-3.x,boto3,digital-ocean,Python 3.x,Boto3,Digital Ocean,我已经尝试了很长时间在DigitalOcean上使用支持CDN的URL和Boto3 我正在使用 boto3==1.15.6 botocore==1.18.6 据我所知,这应该可以做到: session = boto3.session.Session() client = session.client( 's3', region_name=settings.AWS_S3_REGION_NAME, endpoint_url=settings.AWS_S3_ENDPOINT_
boto3==1.15.6
botocore==1.18.6
据我所知,这应该可以做到:
session = boto3.session.Session()
client = session.client(
's3',
region_name=settings.AWS_S3_REGION_NAME,
endpoint_url=settings.AWS_S3_ENDPOINT_URL,
aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
config=Config(s3={'addressing_style': 'virtual'})
)
但是,尽管设置要求使用虚拟寻址样式,但日志清楚地指出:
[DEBUG][utils.\u s3\u addressing\u handler]使用s3**path**style寻址。
事实上,生成的URL就像
https://<AWS_S3_ENDPOINT_URL>/<bucketname>/<object-id>
https:////
我想要的是https://.sfo2.cdn.digitaloceanspaces.com/
例如
感觉就像一旦提供了端点\u url
,寻址样式就被强制为路径
这真的很烦人,因为它使得不可能将CDN服务用于S3兼容的服务
是否有代码生成URL,或绕过此设置