Обновление
Я подтвердил, что мой API получает буфер; теперь я не только понимаю, почему это так, но и метод isBuffer
возвращает true
.
lambda-multipart-parser также дает мне свойство вместе с файлом: encoding: '7bit'
. Насколько я понимаю, «7bit» будет означать ASCII, который совместим с «utf-8».
Я смотрел на Buffer
's readSomething
методы и toString
метод, I' Я посмотрел несколько модулей на NPM, я много смотрел YouTube, но пока не нашел ничего, что получило бы данные буфера как двоичный , как того требует API , на который мне нужно отправить данные.
Кто-нибудь знает, как извлечь двоичный файл из этого буфера в Node.js?
Исходное сообщение
Мой клиент использует реагировать-dropzone , чтобы позволить пользователям выбирать файлы для загрузки. Данные файла регистрируются на консоли следующим образом.
File
lastModified: 1388268203000
name: "ducks.jpg"
preview: "blob:https://example.com/c06750a8-ee86-49d8-bb20-47b88a492298"
size: 65802
type: "image/jpeg"
webkitRelativePath: ""
<prototype>: FilePrototype { name: Getter, lastModified: Getter, webkitRelativePath: Getter, … }
Клиент использует данные ax ios до POST
multipart/form-data
, которые включают файлы для моего API AWS Лямбда-функция, использующая среду выполнения 'nodejs12.x'.
Функция API использует lambda-multipart-parser для интерпретации входящих данных, которые регистрируются на консоли следующим образом.
{
files: [
{
content: <Buffer fd fd fd fd 00 10 4a 46 49 46 00 01 01 01 00 60 00 60 00 00 fd fd 00 43 00 01 01 01 01 01 01 01 01 01 01 01 01 01 02 02 03 02 02 02 02 02 04 03 03 02 ... 62118 more bytes>,
filename: 'ducks.jpg',
contentType: 'image/jpeg',
encoding: '7bit',
fieldname: 'image[0]'
}
],
messageID: '1146'
}
Функция My API использует содержимое этого файла для создания нового файла через Microsoft Graph API, но файл поврежден. Я могу создать не поврежденный файл через ту же конечную точку API, используя fs.readFile () Node и используя Postman с Body в «Binary». Согласно документации API , тело запроса должно содержать содержимое файла в двоичном формате, и я пришел к выводу, что причина, по которой файлы повреждены, заключается в том, что содержимое моего файла не является двоичным.
Я потратил на это дни. Я прочитал и рассмотрел FileReader API , Файловый API , Streams API , Blobs , Наличие AWS API Gateway return двоичный файл (за исключением того, что мне действительно нужен массив файлов и messageID) и все остальное, что я смог найти. Но я, очевидно, не получаю правильную комбинацию вещей в нужных форматах.
Как я могу получить содержимое файла в двоичном виде?