Я загрузил строку img base64 в Google Drive через API в выражении узла. После загрузки img он не отображается на диске. Я не уверен, как решить эту проблему форматирования. Я знаю, что потенциально могу сначала сохранить img локально, а затем загрузить сохраненный файл img, но я надеялся, что есть более простой способ.
Мой код:
const uploadImg = async (folderId,img)=>{
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0
const scopes = [
'https://www.googleapis.com/auth/drive'
];
const auth = new google.auth.JWT(
demoApiCreds.client_email, null,
demoApiCreds.private_key, scopes
);
const drive = google.drive({ version: 'v3', auth });
const fileMetadata = {
'name': 'Client_Design_ScreenShotTest',
'mimeType':'image/jpeg',
'parents':[folderId]
};
const uploadImg = img.split(/,(.+)/)[1];
const media = {
body: uploadImg
}
let res = await drive.files.create({
resource: fileMetadata,
media: media,
fields: 'id',
});
console.log('the response is',res);
console.log('the data is ',res.data);
return res.data;
}
Редактировать:
Файл хранится на диске в формате jpg, но изображение пустое и после того, как изображениенажал гугл диск жалуется что файл не читается. После загрузки img остается пустым.
Строка img base 64:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhAAAADqCAYAAADzlnzfAAAAAXNSR0I...
Я удаляю данные: image / png; base64 перед загрузкой, как было предложено в других темах. ,Сбой с или без этого префикса.