javascript - 使用 NodeJS 在 google drive API 中获取特定文件的内容
问题描述
我发现了很多关于如何.txt
使用他们的 API 从谷歌驱动器中检索文件内容的帖子。我试过用这个:
const drive = google.drive({version: 'v3', auth});
var data = drive.files.get({
fileId: file_id,
alt: "media"
});
data.execute(function(response){
console.log(reponse)
})
我的错误
data.execute(function(response){
^
TypeError: data.execute is not a function
并且data.then
不是data.execute
每次都有一个错误,我研究并没有找到解决办法。有人可以给我一个如何从文件 id 获取文件内容的更新版本吗?因为我认为以前的答案有些过时了。
对不起,如果这很明显。一般来说,我对 javascript 和 apis 比较陌生。所以这对我有很大帮助,因为这是我完成程序之前的最后阶段:)
谢谢, 马蒂亚斯
解决方案
当您为 google drive API 运行“drive.files.get”时,您会收到一个承诺,并且要获取您必须使用的数据。这是它的工作原理:
const filePath = `give_path_tosave_file`;
const dest = fs.createWriteStream(filePath);
let progress = 0;
drive.files.get(
{ fileId, alt: 'media' },
{ responseType: 'stream' }
).then(res => {
res.data
.on('end', () => {
console.log('Done downloading file.');
})
.on('error', err => {
console.error('Error downloading file.');
})
.on('data', d => {
d+='';
console.log(d);
//data will be here
// pipe it to write stream
}
})
.pipe(dest);
});
如果上述解决方案不起作用,您可以使用此解决方案。它在谷歌官方网站上做同样的事情:
var fileId = '1ZdR3L3qP4Bkq8noWLJHSr_iBau0DNT4Kli4SxNc2YEo';
var dest = fs.createWriteStream('/tmp/filename.txt');
drive.files.export({
fileId: fileId,
mimeType: 'application/txt'
})
.on('end', function () {
console.log('Done');
})
.on('error', function (err) {
console.log('Error during download', err);
})
.pipe(dest);
有关更多信息,您应该在此处查看。
此外,以下方法将返回您在驱动器中可以访问的所有文件。
drive.files.list({}, (err, res) => {
if (err) throw err;
const files = res.data.files;
if (files.length) {
files.map((file) => {
console.log(file);
});
} else {
console.log('No files found');
}
});
推荐阅读
- c# - 从枚举生成单选按钮列表
- react-admin - React-Admin 版本更新时出现意外标签更改
- javascript - Word Javascript API:有没有办法访问没有 Javascript API 的 Word 对象?
- racket - 小打字机。我不明白 λ 最初的第二条诫命的含义
- android - 我无法发布 myFlutter 应用程序,因为它说它处于调试模式,尽管我已经完成了所有步骤并生成了密钥
- python-3.x - Python3 - 在变量名称的末尾创建具有“i”值的变量
- linux - 与多个 IP 地址并行的 Bash 脚本
- flutter - 添加六色而不是fluuter默认颜色值
- javascript - 使用 Javascript 输出跨度中的每个字母
- javascript - 无法访问表头数据