我正在尝试下载 xls 或 xlsx 文件,但出现错误:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "fileNotExportable",
"message": "Export only supports Docs Editors files."
}
],
"code": 403,
"message": "Export only supports Docs Editors files."
}
}
我正在使用 nodejs。是否可以通过 api 下载 xls xlsx 文件?
代码示例:
export function getFileFromStream(auth, fileId, mimeType) {
const destPath = `/tmp/${fileId}.xls`;
const dest = fs.createWriteStream(destPath);
return new Promise(async (resolve, reject) => {
const drive = google.drive({version: 'v3', auth});
drive.files.export(
{ fileId, mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'},
{ responseType: 'stream'},
(errrr, response) => {
response.data
.on('end', function() {
console.log('downloaded')
})
.on('error', function(err) {
console.log('Error during download', err);
})
.pipe(dest);
});
});
}
答案 0 :(得分:1)
要下载非 Google Workspace 文档,您需要使用 files.get 中的 sample for Download a file stored on Google Drive 方法:
export function getFileFromStream(auth, fileId, mimeType) {
const destPath = `/tmp/${fileId}.xls`;
const dest = fs.createWriteStream(destPath);
return new Promise(async (resolve, reject) => {
const drive = google.drive({version: 'v3', auth});
drive.files.get({
fileId: fileId,
alt: 'media'
})
.on('end', function () {
console.log('Done');
})
.on('error', function (err) {
console.log('Error during download', err);
})
.pipe(dest);
}