Триггерная загрузка большого Zip-файла - PullRequest
0 голосов
/ 03 августа 2020

Я работаю над приложением React, которое запрашивает ZIP-файл по запросу GET с сервера. Я использую Ax ios в качестве библиотеки запросов.

В ответе получаются следующие заголовки:

Content-type: application/octet-stream
Content-Disposition: attachment; filename=data.zip

Проблема, с которой я столкнулся, заключается в том, что браузер не запускается автоматически загрузка после завершения запроса.

Я думал об использовании window.open, но это не сработает, поскольку запрос авторизован и требует отправки JWT в заголовке Authorization.

Теперь у меня осталось два подхода, и мне нужно понять, какой из них лучше.

  1. Создайте файл, используя данные ответа и конструктор File, а затем прикрепите его к тегу a. Щелкните его программно, чтобы запустить загрузку.
  2. Временно загрузите файл в S3 со стороны сервера и получите подписанный URL-адрес в ответе, в котором я могу использовать window.open

Также . Есть ли у подхода 1 проблемы с производительностью, когда файл предположительно будет большим (скажем,> 15 МБ).

Любая помощь приветствуется.

...