Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Site apresentando erro "SignatureDoesNotMatch" ao tentar publicar nova imagem

Fiz todas as alterações da aula, e logo após mexer nas configurações de AWS no settings.py comecei a ter esse problema sempre que tento incluir uma nova fotografia

# AWS Settings

AWS_ACCESS_KEY_ID = str(os.getenv('AWS_ACCESS_KEY_ID'))

AWS_SECRET_ACCESS_KEY = str(os.getenv('AWS_SECRET_ACESS_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': '*',
}


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

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

STATICFILES_STORAGE = 'storages.backends.s3boto3.S3StaticStorage'

STATIC_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/static/'

Quando você sobe o servidor e testa, ele funciona perfeitamente pra login, mas na hora de enviar o formulário da nova imagem dá o erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Olá, Daniel!

Pela descrição do erro "SignatureDoesNotMatch" e pelo código que você compartilhou, parece que há um pequeno erro de digitação na chave de acesso da AWS no seu arquivo settings.py. O nome da variável de ambiente para a chave secreta da AWS está incorreto. Você digitou AWS_SECRET_ACESS_KEY em vez de AWS_SECRET_ACCESS_KEY (o correto tem dois "C" em "ACCESS").

Aqui está a linha corrigida:

AWS_SECRET_ACCESS_KEY = str(os.getenv('AWS_SECRET_ACCESS_KEY'))

Corrija essa linha no seu arquivo settings.py e tente enviar a imagem novamente. Esse tipo de erro geralmente ocorre quando as credenciais fornecidas não correspondem exatamente ao que a AWS espera, então é sempre bom verificar se há erros de digitação ou se as variáveis de ambiente estão configuradas corretamente.

Além disso, certifique-se de que o arquivo .env contém as chaves corretas e que não há espaços adicionais ou caracteres inválidos que possam estar causando o problema.

Espero que essa correção resolva o seu problema. Bons estudos!

Opa boa noite Renan, eu nem tinha me ligado nesse erro de digitação, já fui crente que o erro seria com a conexão com o AWS.

Apliquei a alteração e funcionou perfeitamente agora, muito obrigado =)