Как собирать статические файлы и загружать их на s3 с помощью django и zappa
Я использую django
и zappa
(https://github.com/zappa/Zappa). Я пытаюсь собрать статический файл django и загрузить его на s3, и после выполнения команды python manage.py collectstatic --no-input
по какой-то причине я продолжаю получать эти ошибки:
...raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessControlListNotSupported) when calling the PutObject operation: The bucket does not allow ACLs
...
raise err_cls("S3Storage error at {!r}: {}".format(name, force_str(ex)))
OSError: S3Storage error at 'admin/css/widgets.css': An error occurred (AccessControlListNotSupported) when calling the PutObject operation: The bucket does not allow ACLs
У меня следующая конфигурация:
settings.py
(я использую django_s3_storage
)
DEBUG=False
...
S3_BUCKET = "my-bucket"
STATICFILES_STORAGE = "django_s3_storage.storage.StaticS3Storage"
AWS_S3_BUCKET_NAME_STATIC = S3_BUCKET
STATIC_URL = "https://%s.s3.amazonaws.com/" % S3_BUCKET
STATIC_ROOT = "https://%s.s3.amazonaws.com/" % S3_BUCKET
AWS_DEFAULT_ACL = None
текущий пользователь aws, является частью group admin
созданной мной группы пользователей, которая имеет administratorAccess
политику, и в дополнение к этому я создал политику ниже, которую я прикрепил к той же группе:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-bucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:CreateMultipartUpload",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::my-bucket/*"
]
}
]
}
Кроме того, я убедился, что снял галочки со всех block public access
разрешений ведра
Не уверен, что делать в данный момент, любая помощь будет оценена по достоинству.