这是我的配置
AWS_ACCESS_KEY_ID = 'keyid'
AWS_SECRET_ACCESS_KEY = 'accesskey'
AWS_STORAGE_BUCKET_NAME = 'allio1'
AWS_S3_ENDPOINT_URL = 'https://sfo3.digitaloceanspaces.com'
AWS_S3_CUSTOM_DOMAIN = 'allio1.sfo3.cdn.digitaloceanspaces.com'
AWS_DEFAULT_ACL = None
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
AWS_LOCATION = 'allio-static'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATIC_URL = '{}/{}/'.format(AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
网址末尾没有签名。例如,这只是普通的网址https://allio1.sfo3.cdn.digitaloceanspaces.com/allio-static/assets/bootstrap/css/bootstrap.min.css网址末尾没有签名,它说访问被拒绝
我也发现了同样的问题,当定义 AWS_S3_CUSTOM_DOMAIN 并且 AWS_DEFAULT_ACL 为“私有”或“无”时,django-storages 似乎确实不会生成签名。
按照此 django-storages 问题中的建议,您可以:
PS。 Digital Ocean 文档中也建议了类似的内容:带有 Spaces CDN 的预签名 URL。