Я хочу получить предопределенный URL-адрес от aws. Но я получаю ошибку: «Рассчитанная нами подпись запроса не соответствует предоставленной вами подписи. Проверьте ваш ключ и метод подписи.»
Вот код django, который у меня есть:
Sttings.py:
AWS_ACCESS_KEY_ID = '*********'
AWS_SECRET_ACCESS_KEY = '**** ****** '
AWS_STORAGE_BUCKET_NAME =' ****** '
AWS_REGION_NAME =' ******* '
в views.py :
def post(self, request, key):
bucket_name = settings.AWS_STORAGE_BUCKET_NAME
s3_client = boto3.client('s3',
aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
config=Config(signature_version='s3v4'),
region_name=settings.AWS_REGION_NAME
)
try:
response = s3_client.generate_presigned_url('put_object',
Params={'Bucket': bucket_name,
'Key': key},
ExpiresIn=3600)
except ClientError as e:
return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR, data={"error_message": str(e)})
else:
return Response({
"url": response
})