Мне нужно разрешить пользователям загружать содержимое всей папки на S3 через мое приложение django.
Обычно я хотел бы создать zip-файл (используя файлы, полученные из boto3), а затем отправить его обратно в ответ. Этот отличный пост от botree показывает, как .
Однако это может быть много данных, и этот код хранит (в памяти или с некоторой адаптацией на жестком диске) все это на моем сервере в качестве промежуточного шага.
Я не хочу хранить предварительно обработанный zip-файл на S3, так как это значительно увеличит стоимость хранилища (а также потребует частого запуска задач для его обновления), и я не могу просто сохранить zip вместо папка из-за других S3 интеграции и управления версиями.
Вопрос
Я читал о StreamingHttpResponse, где я добавляю байты постепенно, поскольку они вычисляются в ответе, но никогда не использовал его. Могу ли я сделать это в этом случае (например, добавить байты, когда они получены из AWS?) И если да, то как?
Примечание: это не обязательно должно быть .zip
, оно может быть .tar.gz
или аналогичным, если это работает!