#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 существует множество пакетов для работы с большими двоичными объектами.