Django StreamingHttpResponse для возврата больших файлов

Мне нужно получить pdf-файлы из s3 и вернуть тот же файл на фронтенд.

def stream_pdf_from_s3(request, file_key):
    s3_client = boto3.client('s3')

    try:
        response = s3_client.get_object(Bucket=settings.AWS_STORAGE_BUCKET_NAME, Key=file_key)
        pdf_stream = response['Body']

        # Use iter_chunks() for efficient streaming
        return StreamingHttpResponse(pdf_stream.iter_chunks(chunk_size=65,536), content_type='application/pdf')

    except Exception as e:
        return HttpResponse(f"Error fetching PDF: {e}", status=500)

Но на вкладке "Сеть" браузера кажется, что байты не передаются даже спустя длительное время. Запрос находится в pending состоянии.

Ожидалось, что байты будут возвращаться кусками немедленно.

В чем может быть причина и есть ли какая-нибудь неправильная конфигурация в коде?

Вернуться на верх