我一直试图通过nodejs中提供的API(v3)将doc,docx,pdf等Office文件也上传到Google驱动器中
我的代码
function uploadToGDrive(file, callback) {
try {
const authDrive = authorizeUser();
const uploadData = prepreUploadData(file);
console.log('Uploading File To Google Drive');
authDrive.files.create(uploadData, (err, { data:{ id: fileId } }) => {
if (!err) {
console.log('File Uploaded To Google Drive', fileId);
callback(null, fileId);
} else {
console.log('Unauthorized User. Kindly Enable the Drive API or Check Your Config (JSON) File');
}
});
} catch (error) {
console.log('Unauthorized User. Kindly Enable the Drive API or Check Your Config (JSON) File');
}
}
function authorizeUser() {
var jwtClient = new google.auth.JWT(
client.client_email,
null,
client.private_key,
['https://www.googleapis.com/auth/drive']
);
jwtClient.authorize(function(err, tokens) {
if (err) {
return;
} else {
console.log('Google autorization complete');
}
});
const drive = google.drive({
version: 'v3',
auth: jwtClient,
});
return drive;
}
function prepreUploadData(file) {
var resource = {
name: getBaseName('minola2.pdf'),
parents: [parentId],
};
var media = {
mimeType: 'application/pdf',
body: fs.createReadStream(path.join(__dirname, './sf.pdf')),
};
return { resource, media };
}
看看prepreUploadData
函数。我只是上传一个pdf文件。
此上传成功,但已损坏。云端硬盘无法打开,如果我下载了它,则它是空的。 docx也是如此。
仅文本文件在上载到驱动器后才可以查看,但是Office文件在某种程度上已损坏或为空,或者上帝知道。
有人可以告诉我我做错了什么吗?我进行了很多搜索,但没有任何效果。