首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在使用NodeJs将文件上传到Google Drive时获取进度状态?

如何在使用NodeJs将文件上传到Google Drive时获取进度状态?
EN

Stack Overflow用户
提问于 2018-08-26 21:01:49
回答 1查看 1.2K关注 0票数 0

我正在尝试获取进度状态值,同时使用nodeJs将文件上传到google Drive。

controller.js

代码语言:javascript
复制
exports.post = (req, res) => {
//file content is stored in req as a stream 
// 1qP5tGUFibPNaOxPpMbCQNbVzrDdAgBD is the folder ID (in google drive) 
  googleDrive.makeFile("file.txt","1qP5tGUFibPNaOxPpMbCQNbVzrDdAgBD",req);

};

googleDrive.js

代码语言:javascript
复制
...
    makeFile: function (fileName, root,req) {

        var fileMetadata = {
            'name': fileName,
            'mimeType': 'text/plain',
            'parents': [root]
        };

        var media = {
            mimeType: 'text/plain',
            body: req
        };

        var r = drive.files.create({
            auth: jwToken,
            resource: fileMetadata,
            media: media,
            fields: 'id'
        }, function (err, file) {
            if (err) {
                // Handle error
                console.error(err);
            } else {
                // r => undefined
                console.log("Uploaded: " + r);
            }
        });


    },
...

我遵循这个link,但总是得到一个未定义的值

EN

回答 1

Stack Overflow用户

发布于 2018-08-27 08:15:50

这个修改怎么样?

修改点:

使用onUploadProgress.的

修改后的脚本:

代码语言:javascript
复制
makeFile: function (fileName, root,req) {
    var fileMetadata = {
        'name': fileName,
        'mimeType': 'text/plain',
        'parents': [root]
    };

    var media = {
        mimeType: 'text/plain',
        body: req
    };

    var r = drive.files.create({
        auth: jwToken,
        resource: fileMetadata,
        media: media,
        fields: 'id'
    }, {
      onUploadProgress: function(e) {
        process.stdout.clearLine();
        process.stdout.cursorTo(0);
        process.stdout.write(e.bytesRead.toString());
      },
    }, function (err, file) {
        if (err) {
            // Handle error
            console.error(err);
        } else {
            console.log("Uploaded: " + file.data.id);
        }
    });
},

注意:

如果要将进度显示为"%",请使用文件大小。

  • 已确认此脚本在googleapis@33.0.0.

中有效

参考文献:

在我的环境中,我使用了上面的脚本。但是,如果这在您的环境中不起作用,如果我误解了您的问题,我很抱歉。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52026500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档