无法通过V3 API将Office文件上传到Google驱动器

时间:2019-02-26 07:17:24

标签: node.js google-drive-api

我一直试图通过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文件在某种程度上已损坏或为空,或者上帝知道。

有人可以告诉我我做错了什么吗?我进行了很多搜索,但没有任何效果。

0 个答案:

没有答案