Я создаю веб-API ASP .Net Core 2.1. Внешний интерфейс (написанный на Angular) будет использовать этот API, который используется для ряда вещей, одна из которых — сохранение и извлечение файлов (изображений, документов PDF и Word и т. д.).
Мы храним все эти файлы на Amazon S3. Я смотрел обучающее видео (https://www.youtube.com/watch?v=eRUjPrMMhCc), где парень показывает, как создать корзину, а также загрузить и скачать файл из Amazon S3 с помощью веб-API ASP .Net Core 2.0, что мне показалось фантастическим, поскольку это именно то, что мне было нужно.
Но потом я понял, что, хотя функциональность загрузки может быть полезной, загрузка может и не быть. Причина в том, что если пользователь запрашивает файл (хранящийся на Amazon S3) через клиентское веб-приложение, и этот запрос поступает в API (как и было моим первоначальным намерением), то API должен будет сначала загрузить этот файл из S3. (что может занять несколько секунд), а затем отправить его клиенту (еще несколько секунд). Таким образом, файл передается дважды и, следовательно, излишне замедляет процесс получения файла от S3 к клиенту.
Правильно ли мое мышление здесь? Было бы лучше, если бы клиент Angular получал файл напрямую из S3, а не через API? В плане скорости?