google-drive-api - 尝试获取文件元数据时出现错误 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']。”>
解决方案
好的,我发现了问题。
item.get('parents',[0]) 没有返回一个字符串,而是一个列表。
我用 item['parents'][0] 替换了它,现在它正在工作。
推荐阅读
- javascript - 从字符串数组重构一个方法并执行它
- php - 如何使用 laravel 5.8 在控制器中创建条件?
- powershell - 为什么 Set-CASMailbox 不从 Exchange 2019 隔离区中删除移动设备?
- python-3.x - 导入一个模块会导致错误,但是将它们分成两个然后导入不会,为什么?
- java - 如何使用 apache poi 设置条件格式规则的优先级?
- php - 用ajax发送数据后,数据没有保存到mysql数据库中。无法弄清楚是什么问题
- php - 如何从数组中获取数据并将其放在 txt 文件中?
- vue.js - Vue.js - 如何动态切换图像的 URL?
- jenkins - 在管道步骤脚本中连接文件名
- kubernetes - 无法访问 Kubernetes 中暴露的部署/pod