1
resposta

[Bug] Problema com CSS

Fiz vários passos que passaram mas nada resolveu. No final as coisas estão assim

AWS_ACCESS_KEY_ID = str(os.getenv('AWS_ACCESS_KEY_ID'))
AWS_SECRET_ACCESS_KEY = str(os.getenv('AWS_SECRET_ACCESS_KEY'))
AWS_STORAGE_BUCKET_NAME = str(os.getenv('AWS_STORAGE_BUCKET_NAME'))
AWS_S3_CUSTOM_DOMAIN = f'{AWS_STORAGE_BUCKET_NAME}.s3.sa-east-1.amazonaws.com'
AWS_DEFAULT_ACL = 'public-read'
AWS_S3_OBJECT_PARAMETERS = {
    'CacheControl': 'max-age=86400'
}
AWS_LOCATION = 'static/'
AWS_QUERYSTRING_AUTH = False
AWS_HEADERS = {
    'Access-Control-Allow-Origin': '*',
}

STORAGES = {
    "default": {
        "BACKEND": "storages.backends.s3.S3Storage",
        "OPTIONS": {
            "access_key": str(os.getenv('AWS_ACCESS_KEY_ID')),
            "secret_key": str(os.getenv('AWS_SECRET_ACCESS_KEY')),
            "bucket_name": str(os.getenv('AWS_STORAGE_BUCKET_NAME'))
        },
    },
    "staticfiles": {
        "BACKEND": "storages.backends.s3.S3Storage",
        "OPTIONS": {
            "access_key": str(os.getenv('AWS_ACCESS_KEY_ID')),
            "secret_key": str(os.getenv('AWS_SECRET_ACCESS_KEY')),
            "bucket_name": str(os.getenv('AWS_STORAGE_BUCKET_NAME'))
        },
    },
}


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.1/howto/static-files/

STATIC_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'setup/static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

# Media
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/media/'

![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

Erro que da quando tento coletar os arquivos estáticos. Já tentei mudar as permissões no AWS mas não deu certo, creio que seja alguma coisa do aws e nao do codigo

ATUALIZAÇAO:

Eu consigo subir arquivos usando a biblioteca do boto3 e tambem solicitar dados que estão no bucket mas não consigo fazer o upload da pasta nem o colecstatic

1 resposta

Olá, Lucas! Tudo bem?

Pelo erro apresentado na imagem, parece que você está enfrentando um problema de permissão (HTTP 403 Forbidden) ao tentar executar o comando collectstatic do Django, que é responsável por coletar os arquivos estáticos do seu projeto e enviá-los para o bucket S3 configurado.

Uma causa comum para esse tipo de erro é a falta das permissões necessárias para o usuário da AWS cujas credenciais estão sendo utilizadas. Para resolver isso, você precisa garantir que o usuário da AWS tem as permissões adequadas para acessar e modificar o bucket S3.

Aqui estão algumas etapas que você pode seguir para solucionar o problema:

  1. Verifique as Políticas de Permissão do IAM: Acesse o AWS Management Console e verifique se o usuário que está usando tem uma política de permissão anexada que concede acesso ao S3. A política deve incluir permissões para realizar operações como s3:PutObject, s3:GetObject, s3:DeleteObject, e s3:ListBucket no bucket específico.

  2. Confira o Bucket Policy: Além das permissões do IAM, o próprio bucket pode ter uma política que restringe o acesso. Verifique se o bucket policy não está bloqueando as requisições do seu usuário.

  3. Verifique o CORS Configuration: Se o seu bucket S3 está configurado para servir arquivos estáticos para o seu site, você deve ter uma configuração de CORS que permita que seu domínio acesse esses recursos.

Se após essas verificações o problema persistir, recomendo que me envie todo o seu código do projeto, para que eu realize teste a fim de tentar solucionar a sua situação.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software