Загрузка двоичного файла из OneDrive API с использованием Node / Axios - PullRequest
0 голосов
/ 07 января 2020

Я использую One Drive API , чтобы получить файл с помощью приложения узла, используя библиотеку ax ios.

Я просто пытаюсь сохранить файл на локальном компьютере (узел работает локально).

Я использую API One Drive, чтобы получить ссылку для загрузки документа, которая не требует аутентификации (с https://graph.microsoft.com/v1.0/me/drives/ [location] / items / [id] ).

Затем я звоню со ссылкой для скачивания документа:

response = await axios.get(url);

Я получаю ответ JSON, который включает, среди прочего, контент- тип, длина содержимого, расположение содержимого и элемент данных, который является содержимым файла.

Когда я отображаю на консоли ответ JSON, часть данных выглядит следующим образом:

data: 'PK\u0003\u0004\u0014\u0000\u0006\u0000\b\u0000\u0000\u0000!\u...'

Если документ просто текстовый, я могу сохранить это легко, используя:

fs.writeFileSync([path], response.data);

Но если файл является двоичным, как файл docx, я не могу понять, как его правильно написать. Кажется, что каждый раз, когда я пытаюсь это сделать, неправильная кодировка. Я пробовал разные кодировки.

Как правильно сохранить файл в зависимости от типа полученного файла.

1 Ответ

0 голосов
/ 07 января 2020

Вы пытались использовать encoding параметр fs.writeFileSync с явным нулем, означающий, что данные являются двоичными?

fs.writeFileSync([path], response.data, {
  encoding: null
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...