Node js中的Google Drive File Download API无法正常工作?

时间:2019-02-04 05:34:27

标签: node.js google-api

我正在使用Google驱动器文件下载api从Google驱动器下载文件。

我正在使用以下代码,

var fileId = '1RDrrFGV2fM7jvnxGFileId';
var dest = fs.createWriteStream('./sample.xlsx');

drive.files.get({fileId: fileId, alt: 'media'}, {responseType: 'stream'},
function(err, res){
    res.data
    .on('end', () => {
        console.log('Done');
    })
    .on('error', err => {
        console.log('Error', err);
    })
    .pipe(dest);
}
);

下载的文件为空,如何获取文件数据。

2 个答案:

答案 0 :(得分:0)

drive.files.get将仅返回文件的元数据。由于您尝试下载文件并检索内容,因此应使用

#include<iostream>
#include<iomanip>

bool treat_line(std::istream& is)
{
    char c;
    while(is)
    {
        is >> std::noskipws >> c;
        if(c == '\n')
        {
             std::cout << "Newline\n";
             break;
        }
        else
            std::cout << c;
    }
    return bool(is);  // convert "OK" state of stream to boolean
}

int main()
{
    while(treat_line(std::cin))
        ;
    std::cout << "done\n";
}

您可以参考客户端文档https://apis-nodejs.firebaseapp.com/drive/index.html

答案 1 :(得分:0)

我有另一个下载谷歌驱动器文件的解决方案。使用以下代码段

var downloadfile="https://docs.google.com/uc?id=" + fileId

return downloadfile;

浏览下载文件的网址以下载文件。