通过Google Drive API v3和nodejs上传的一些PDF已损坏/不完整

时间:2018-08-07 05:34:35

标签: node.js file-upload google-drive-api

我正在尝试使用其api将某些文件上传到我的个人Google驱动器上的共享文件夹,直到现在我还没有遇到问题,但是最近我意识到,无论如何,某些pdf文件都无法完全上传或上传损坏我从驱动器上获取的文件大小始终为64 KB。如果我手动上传文件,则不会

我用于上传的功能是:(drive.js)

const { google } = require("googleapis");
const drive = google.drive("v3");
const path = require("path");
const fs = require("fs");

module.exports = {
    upload: function (opts, callback) {    
        let key = {};
        if (!opts.key) {
            key = require('./private_key.json');
        } else {
            key = require(opts.key);
        }    
        let folder = (!opts.folder) ? '{folderID}' : opts.folder;
        let jwToken = new google.auth.JWT(
            key.client_email,
            null,
            key.private_key, ['https://www.googleapis.com/auth/drive'],
            null
        );    
        jwToken.authorize((authErr) => {
            if (authErr) {
                callback(authErr, "");
                return;
            }
        });    
        let fileMetadata = {
            'name': path.basename(opts.filePath),
            parents: [folder]
        };    
        let media = {
            mimeType: opts.fileType,
            body: fs.createReadStream(opts.filePath)
        };    
        drive.files.create({
            auth: jwToken,
            resource: fileMetadata,
            media: media,
            fields: 'id'
        }, function (err, file) {
            if (err) {
                callback(err, "");
            } else {
                callback("", file.data.id);
            }
        });
    }
};

我从(usage.js)调用它:

var drive = require('./drive.js');    
drive.upload({
        filePath: 'D:\\Programacion\\NodeJS\\driveApiTest\\files\\test.pdf',
        fileType: 'application/pdf'
    },
    function(err, fileID) {
        if (err) {
            console.log(err);
        } else {
            console.log(fileID);
        }
        return;
    }
);

如果您想使用我正在使用的文件进行测试,可以找到它。 here(手动上传)

Here是上传后在驱动器上找到的图像。如您所见,文件大小为64 KB。

任何对此的见解将不胜感激。预先感谢。

0 个答案:

没有答案