Fixed! It's due to case sensitive paths in aws. On Monday, 21 December 2020 at 06:49:17 UTC+5:30 Sai Maruthi wrote:
> I'm hosting my Static and Media Files of my Django Project on AWS s3. The > static files for admin and the image files are working fine, but some of > the static files CSS & JS are giving a 403 error(URL for reference- > https://maruthi-static.s3.amazonaws.com/static/css/customer_view/main/main.css). > > I'm using boto3-1.16.40 and django-storages-1.11, with AWS IAM user with > AmazonS3FullAccess permission. The following is my code. > > Settings.py > # STORAGES > # > ------------------------------------------------------------------------------ > > AWS_ACCESS_KEY_ID = "----" > AWS_SECRET_ACCESS_KEY = "----" > AWS_STORAGE_BUCKET_NAME = "maruthi-static" > AWS_QUERYSTRING_AUTH = False > _AWS_EXPIRY = 60 * 60 * 24 * 7 > AWS_S3_OBJECT_PARAMETERS = { "CacheControl": f"max-age={_AWS_EXPIRY}, > s-maxage={_AWS_EXPIRY}, must-revalidate" } > AWS_S3_REGION_NAME = "us-east-2" > AWS_S3_CUSTOM_DOMAIN = None > aws_s3_domain = f"{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com" > AWS_DEFAULT_ACL = None > > # STATIC > # > --------------------------------------------------------------------------------------- > > AWS_STATIC_LOCATION = 'static' > STATICFILES_STORAGE = "tps.storages.StaticRootS3Boto3Storage" > COLLECTFAST_STRATEGY = "collectfast.strategies.boto3.Boto3Strategy" > STATIC_URL = f"https://{aws_s3_domain}/{AWS_S3_REGION_NAME}/static/" > > # MEDIA > # > ------------------------------------------------------------------------------ > > AWS_PUBLIC_MEDIA_LOCATION = 'media/public' > DEFAULT_FILE_STORAGE = "tps.storages.MediaRootS3Boto3Storage" > MEDIA_URL = f"https://{aws_s3_domain}/{AWS_S3_REGION_NAME}/media/" > > AWS_PRIVATE_MEDIA_LOCATION = 'media/private' > PRIVATE_FILE_STORAGE = 'mysite.storages.PrivateMediaRootS3Boto3Storage' > > storages.py > from storages.backends.s3boto3 import S3Boto3Storage > from django.conf import settings > > > class StaticRootS3Boto3Storage(S3Boto3Storage): > location = settings.AWS_STATIC_LOCATION > default_acl = "public-read" > > > class MediaRootS3Boto3Storage(S3Boto3Storage): > location = settings.AWS_PUBLIC_MEDIA_LOCATION > file_overwrite = False > > class PrivateMediaRootS3Boto3Storage(S3Boto3Storage): > location = settings.AWS_PRIVATE_MEDIA_LOCATION > default_acl = 'private' > file_overwrite = False > custom_domain = False > > All my static and media files were uploaded to my s3 bucket when I ran > collectstatic. > > I have set the following permissions: bucket block-public-access settings > <https://i.stack.imgur.com/fB4k6.png> > > CORS > [ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "GET" ], > "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ] > > > > apart from the above settings, I didn't set any bucket policies. If > someone can help me I will be very grateful. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/bb67f707-eda1-4d72-8f21-fc18ff0b5145n%40googlegroups.com.