谷歌云端硬盘 API v3 "File not found"



在使用Google Drive Api v3的过程中,我遇到了一个问题:

如果我打电话检索文件列表,我可以在响应中看到,其中包括:

{ id: '1XYlwukNmzUrHRCh05pb9OeD1nnZdDjJU', name: 'file5.zip' },

所以现在我使用上面响应中的fileId来尝试删除:

const deleteFileById = (fileId) => {
console.log(`File id is ${fileId}`);
const drive = google.drive({ version: 'v3', authorization });
return new Promise((resolve, reject) => {
try {
drive.files.delete({
auth: authorization,
fileId: fileId,
}, (err, res) => {

if (err) return console.log('The API returned an error: ' + err);
resolve("File has been deleted");
});
} catch (error) {
console.log(error);
}
});
}

作为回应:

The API returned an error: Error: File not found: 1XYlwukNmzUrHRCh05pb9OeD1nnZdDjJU.

所以,在这一点上,我想说这很奇怪。。。。。

这是我使用的代码。它有效,但有时会跑得有点快。您不需要为对api的调用添加授权,api已经是服务的一部分。

async function deleteFiles(auth) {
const driveService = google.drive({version: 'v3', auth});
let response = await driveService.files.list({
q: "parents in '10krlloIS2i_2u_ewkdv3_1NqcpmWSL1w'",
fields: 'files(id)'
})
const files = response.data.files;
if (files.length) {
console.log('Files:');
files.map((file) => {
console.log(`${file.id}`);
driveService.files.delete({
"fileId": file.id
})
.then(() => console.log('FileDeleted'))
.catch((err) => console.error('failed' + err));
});
} else {
console.log('No files found.');
}
}

相关内容

最新更新