Как загрузить файл на диск с помощью API диска, который извлекается из какой-либо другой системы в node.js

#javascript #node.js #axios #google-drive-api

Вопрос:

Я извлекаю файл из сторонней системы, и он возвращает данные в ответе в виде строки. Теперь, когда вы используете эту строку для загрузки на диск, она загружается, но файл не открывается. Я попытался преобразовать строку в большой двоичный объект, но это невозможно в node.js. Как я могу правильно загрузить, используя эту строку данных?

 let res=await axios.get("getting the file from 3rd party system",headers);
  
  let fileToUpload=res.data;   // storing the file in variable

  
 let data={
  name:'image.png',
  parents:['1BD50Xdf5456ghec8Ccwa5YNEkpgPaOxdE_M']
};
let head={
      headers: {
        'Content-Type': 'application/json; charset=UTF-8',
        'Content-Length':127494,
        'Authorization': 'Bearer ' driveaccessToken
    }
};
  //request to upload metadata
 res=await axios.post('https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable',JSON.stringify(data),head);

  //getting the content upload url from response
 let uploadUrl=res.headers.location;
 
 //uploading the content
  res = await axios.put(uploadUrl,fileToUpload,head);
  console.log(res.status); 

Комментарии:

1. Есть ли причина не использовать официальный Node.js клиент ?

2. да, у меня уже есть готовый доступ, и поэтому мне легко загружать его с помощью запроса, а не с помощью клиента

3. Когда вы говорите «строка данных», как выглядит эта строка? Это закодированное изображение? В каком это формате? база 64? Есть ли причина, по которой вам нужна возобновляемая загрузка? Что именно вы подразумеваете под тем, что файл загружается, но не открывается? Что вы имеете в виду, когда преобразование в большой двоичный объект невозможно в node.js? Вы читали это ?

4. данные закодированы в кодировке utf8, и я преобразовал их в буфер кодировки base64. Создание большого двоичного объекта невозможно, как в javascript на стороне клиента.

5. Можете ли вы подтвердить, что это закодированное изображение? Есть ли причина, по которой вам нужна возобновляемая загрузка? Что именно вы подразумеваете под тем, что файл загружается, но не открывается? В npm существует множество пакетов для работы с большими двоичными объектами.