Как отправить изображения в django API? - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь отправить свое изображение с сервера django в приложение. Есть две причины для вышеуказанной проблемы: 1) отправить URL-адрес изображения 2) отправить закодированное изображение, я не уверен, какой использовать из-за следующее: -

  1. Если я выберу первый путь. Json resoponse будет быстрее, но если пользователь дважды вернет страницу, он сделает два запроса на сервере. Более того, было бы невозможно кэшировать изображение.
  2. В случае второго подхода я могу кэшировать изображение в клиентском приложении, но увеличивает ли кодирование общее время ответа от сервера?

Какой подход рекомендуется для отправки изображения из API. В настоящее время я отправляю изображение следующим образом: -

return JsonResponse({'image':model.image.url})

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

Вы, вероятно, хотите go с # 1 и отправить по URL. Обычно вы бы доставляли файлы изображений не напрямую с вашего сервера, а из облачного хранилища, такого как S3 или GCS. Более продвинутые настройки включают даже CDN (сети доставки контента), такие как Fastly или Cloudfront, чтобы обеспечить простое кэширование и обслуживать трафик c в глобальном масштабе.

Если вы хотите отправить зашифрованное изображение (в base64 для пример), имейте в виду, что увеличенный размер ответа тела увеличит время отклика до невероятно высокого уровня и может даже привести к полному времени ожидания около 30 с. В конечном итоге пользователи получат больше времени отклика, с большей вероятностью произойдут отток, и вы платите гораздо больше за свои серверы.

1 голос
/ 12 февраля 2020

Ответ - подход 1. Кодирование изображений разрушит время отклика вашего сервера, если только оно не будет очень маленьким, как миниатюры или аватары, даже тогда я бы не стал привыкать к этому. Я видел приложения, непригодные для использования этой практикой. Большинство браузеров автоматически кэшируют изображения во время сеансов. Если производительность сервера вызывает серьезную обеспокоенность, а изображения тянут ее вниз, обычно я сохраняю изображения на каком-либо статичном файловом хосте c, например s3, и в любом случае использую пограничный кеш в реальных условиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...