Google Drive Node.js API返回已删除的文件

时间:2019-03-07 20:45:52

标签: javascript node.js rest express google-drive-api

我在应用程序中使用了Google Drive API。我已经从Google驱动器中删除了文件,但listfiles函数仍然返回那些已删除的文件。有什么解决方案可以避免这种情况。这是我的API的功能

router.post('/', Authorise, (req, res, next) => {
const auth = req.auth;
const drive = google.drive({version: 'v3', auth});
drive.files.list({
    pageSize: 10,
    fields: 'nextPageToken, files(id, name)',
}, (err, rslt) => {
    if(err){
        res.status(500).json(err);
    }
    else{
        const files = rslt.data.files;
        if(files.length){
           res.status(200).json(files);
        }
        else{
            res.status(200).json({message: "No files found"})
        }
    }
});

});

3 个答案:

答案 0 :(得分:1)

您可以使用此查询:

await this.drive.files.list({
    q: 'trashed=false',
});

这样就不会返回文件夹中已删除的文件。

答案 1 :(得分:0)

您可以在元数据(https://developers.google.com/drive/api/v3/reference/files)中检查布尔值“ trashed”的值。

  

您的问题可能来自删除和删除之间的区别:

     
      
  1. 垃圾:https://developers.google.com/drive/api/v2/reference/files/trash <-   这是V2 API,我不知道它是否可以在v3上使用
  2.   
  3. 删除:https://developers.google.com/drive/api/v3/reference/files/delete
  4.   

编辑:您还可以运行以下命令: https://developers.google.com/drive/api/v3/reference/files/emptyTrash

答案 2 :(得分:0)

检查垃圾箱。您将在此处找到已删除的文件。这就是为什么它返回这些文件的原因。