Является ли загрузка изображения в кодировке base64 плохой практикой? - PullRequest
1 голос
/ 31 марта 2019

Есть ли проблема в использовании кодировки base64 только для загрузки изображения на сервер?Оказавшись там, т. Е. Он будет отправлен в AWS и будет служить двоичным файлом, а не строкой base64.

Сервер устанавливает для изображений ограничение в 2 МБ.Изображение отправляется в теле POST (тип содержимого JSON) вместе с другими данными, например:

// POST /signup
{
  email: 'example@email.com',
  password: 'example@email.com',
  name: 'Example Name',
  picture: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAA...',
}

Затем сервер сможет загрузить данные в корзину S3.

Ответы [ 2 ]

1 голос
/ 31 марта 2019

Общепринятый результат Base64, кодирующий двоичное изображение, является результатом примерно на 30% больше, чем оригинал.Если ограничение сервера составляет 2 МБ, вы фактически ограничиваетесь изображением размером 1,4 МБ, увеличивая его с помощью кодирования.Base64 - это не метод сжатия, это просто метод передачи двоичных данных на сервер через HTTP.

Если у вас есть контроль над сервером, сделайте так, чтобы он принимал вместо этого сжатые gzip двоичные данные, или если выМожно поместить изображение куда-нибудь, отправить его URL в запросе, и сервер может загрузить его.

1 голос
/ 31 марта 2019

Изображения в кодировке Bas64 - хорошая практика для изображений небольшого размера (КБ).Для изображения большего размера вы получите ошибки размера.

Хотя, если вы хотите использовать размер изображения (МБ), я предлагаю передать их в качестве эскиза.

Миниатюры - это уменьшенные по размеру версии изображений или видео, используемые для их распознавания и организации, которые выполняют ту же роль для изображений, что и обычный текстовый индекс для слов

https://www.npmjs.com/package/image-thumbnail

...