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
состоянии.
Ожидалось, что байты будут возвращаться кусками немедленно.
В чем может быть причина и есть ли какая-нибудь неправильная конфигурация в коде?