Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用Boto3';虚拟';S3兼容服务的地址(DNS名称中的bucket)_Python 3.x_Boto3_Digital Ocean - Fatal编程技术网

Python 3.x 使用Boto3';虚拟';S3兼容服务的地址(DNS名称中的bucket)

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_

我已经尝试了很长时间在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_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,或绕过此设置