首页 > 解决方案 > 尝试获取文件元数据时出现错误 404

问题描述

尝试使用 Google Drive Api、files.get 方法访问文件元数据时出现 404 错误。

我试图从 Api 测试页面使用相同的用户和相同的 fileID 重现错误:https ://developers.google.com/drive/api/v3/reference/files/get 但我无法重现错误。从这个页面我得到一个 200 响应,我得到了我需要的元数据(文件名等)这意味着 FileID 是正确的并且文件确实存在

根据 Google 的说法,404 错误可能是由于权限不足(我认为不是这种情况,在我的代码中我使用的是https://www.googleapis.com/auth/drive,据我所知包括对元数据的访问) . 否则该文件不存在,情况也并非如此。

我不知道还能尝试什么。这是我的简单 Python 代码:

#GET THE FILES LIST - THIS WORKS PERFECTLY:
theFiles = drive_service.files().list(pageSize=1000,q="trashed=false and mimeType != 'application/vnd.google-apps.folder'",orderBy="quotaBytesUsed desc, name, modifiedTime desc",fields="files(id,name,modifiedTime,quotaBytesUsed,starred,webViewLink, parents)").execute()
dicFiles = theFiles.get('files',[])

#GET METADATA
for item in dicFiles:
    parentID=item.get('parents',[0])

    #HERE I GET THE 404 ERROR
    metadata= drive_service.files().get(fileId=parentID).execute()

错误:

https://www.googleapis.com/drive/v3/files/%5B%271uP0WhJXtjHBSnBb4KS80GexG9P5OLH-p%27%5D?alt=json 返回“找不到文件:['1uP0WhJXtjHBSnBb4KS80GexG9P5OLH-p']。”>

标签: google-drive-api

解决方案


好的,我发现了问题。

item.get('parents',[0]) 没有返回一个字符串,而是一个列表。

我用 item['parents'][0] 替换了它,现在它正在工作。


推荐阅读