Django — как вернуть клиенту предварительно подписанный URL-адрес s3 (boto3) для загрузки

#python #django #boto3

Вопрос:

У меня есть следующий код в моем views.py :

 def download(request, pk):
    obj = get_object_or_404(Files, pk=pk)
    file = obj.file_path
    download_url = s3_get_client(endpoint=obj.s3_backend.endpoint,
                                 access_key=obj.s3_backend.access_key,
                                 secret_key=obj.s3_backend.secret_key,
                                 region=obj.s3_backend.region
                                 ).generate_presigned_url(
        ClientMethod='get_object',
        Params={'Bucket': obj.s3_backend.bucket, 'Key': file},
        ExpiresIn=1000
    )
    return download_url
 

Теперь я хотел бы знать, как я могу немедленно дать указание браузеру клиентов загрузить возвращенное download_url .

Ответ №1:

Ответ довольно прост:

 return HttpResponseRedirect(download_url)
 

Также проверьте: HttpResponseRedirect (Django)