Botocore ClientError возникает при сборе статических файлов в приложении django
Я использую AWS S3 bucket для своих проектов, чтобы обслуживать статические и медиафайлы. Я использовал S3 bucket для моих предыдущих проектов django, и он работает нормально. Но в моем текущем проекте он выдает следующую ошибку при использовании команды python manage.py collectstatic
.
botocore.exceptions.ClientError: Произошла ошибка (403) при вызове операции HeadObject: Forbidden
>
Я использовал правильные настройки S3, а также сделал свой S3 bucket публичным. Но я не знаю, почему возникает эта ошибка. Пожалуйста, помогите мне решить эту проблему. Заранее спасибо.
Мой код
if config("USE_S3", cast=bool) == True:
# aws settings
AWS_ACCESS_KEY_ID = config('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = config('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = config('AWS_STORAGE_BUCKET_NAME')
AWS_S3_REGION_NAME = 'us-east-1'
AWS_DEFAULT_ACL = None
AWS_S3_FILE_OVERWRITE = False
AWS_S3_CUSTOM_DOMAIN = f'{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com'
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400'
}
# s3 static settings
STATIC_LOCATION = 'static'
STATIC_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/{STATIC_LOCATION}/'
STATICFILES_STORAGE= 'storages.backends.s3boto3.S3Boto3Storage'
else:
MEDIA_URL = '/mediafiles/'
MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static")
]
Моя политика ведра
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
Моя настройка корсета,
[
{
"AllowedHeaders": [
"Authorization",
"Content-Range",
"Accept",
"Content-Type",
"Origin",
"Range"
],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [
"Content-Range",
"Content-Length",
"ETag"
],
"MaxAgeSeconds": 3000
}
]
Ошибка в консоли,