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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/bb67f707-eda1-4d72-8f21-fc18ff0b5145n%40googlegroups.com.

Reply via email to