Как использовать `application/octet-stream` в JavaScript

У меня возникла небольшая проблема с соединением некоторых частей в приложении, которое я создаю. Я использую React-Native, и камера сохраняет изображение.

Есть два способа заставить Microsoft Face API оценить изображение:

  1. Внешний URL-адрес
  2. octet-stream

Поскольку приложение не загружает фото с мобильного телефона на сервер, мне приходится полагаться на octet-stream. К сожалению, у Microsoft нет документации о том, как это сделать в JavaScript.

На данный момент у меня есть только fetch API для выполнения всех моих сетевых запросов. Я искал в Интернете учебные пособия, но не могу понять, как организовать эти шаги:

  1. Камера делает снимок и сохраняет его в локальном файле (я могу получить путь к файлу изображения — этот шаг хорош).
  2. Используйте fetch с помощью octet-stream, чтобы отправить файл в Face API.

Использование octet-stream означает ли это, что мне нужно использовать объект Buffer для чтения файла и помещения его в запрос fetch?

Спасибо за любую помощь!


comment
не используйте fetch, потому что вы не можете транслировать с помощью fetch   -  person Jaromanda X    schedule 03.05.2019
comment
дааа... как насчет axios?   -  person EHorodyski    schedule 03.05.2019
comment
@JaromandaX фактически согласно спецификациям fetch теперь может отправлять ReadableStreams (хотя в настоящее время это никто не поддерживает) Но в любом случае, ЭХордыски, вы действительно хотите транслировать это? Разве вы не хотите просто загрузить его? Если это так, то вы просто спрашиваете, как отправить файл на сервер.   -  person Kaiido    schedule 03.05.2019
comment
Итак, @Kaiido - вы говорите, что вы не можете транслировать с помощью fetch   -  person Jaromanda X    schedule 03.05.2019
comment
@JaromandaX ... в настоящее время по спецификациям вы можете. И в будущем вы сможете это сделать. И чтобы быть абсолютно педантичным, вы уже можете стримить с сервера, используя fetch.   -  person Kaiido    schedule 03.05.2019
comment
Я думал, что ОП хотел передать поток на сервер сегодня, используя выборку? Я неправильно прочитал вопрос   -  person Jaromanda X    schedule 03.05.2019
comment
@JaromandaX Ну, я думаю, они неправильно объяснили свои действия, и вы сосредоточились на термине поток, в то время как все, что они хотят, это опубликовать это изображение. API MS Face Cognitive Services ожидает простой HTTP-запрос POST. Мой комментарий был просто предупреждением о вас, которое не только было введено в заблуждение из-за того, что OP использовал термин поток, но и было своего рода неправильным.   -  person Kaiido    schedule 03.05.2019
comment
Что именно означает сохранение изображения? У вас есть файл изображения .jpeg, сохраненный на вашем сервере? Затем Face API принимает URI напрямую.   -  person Kaiido    schedule 03.05.2019
comment
@Kaiido - возможно, я неправильно понял вопрос, прочитав слова, использованные в вопросе, - однако я правильно понял тот факт, что Отправить ReadableStream в теле запроса не поддерживается и, следовательно, не может быть выполнено.   -  person Jaromanda X    schedule 03.05.2019
comment
Вот почему я не должен спешить с вопросами StackOverflow! Поскольку Face API может принимать либо URL-адрес (которого не существует, поскольку изображение хранится локально на мобильном устройстве пользователя), либо octet-stream, я предположил, что мне нужно будет сделать последнее, и я подумал за кулисами, что запрос выполняет потоковую передачу файла по частям). Моя ошибка ребята!   -  person EHorodyski    schedule 03.05.2019
comment
Я обновил свой вопрос, надеюсь, он имеет больше смысла. Это мобильное устройство, поэтому файл хранится на нем. Мне нужно использовать параметр octet-stream Face API, чтобы передать ему этот файл, поскольку нет внешнего URL-адреса, который я отправляю на сервер.   -  person EHorodyski    schedule 03.05.2019