微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用pydrive从谷歌共享驱动器删除文件,文件存在,但API返回404文件未找到错误

如何解决使用pydrive从谷歌共享驱动器删除文件,文件存在,但API返回404文件未找到错误

我正在尝试使用 pydrive 删除共享驱动器上的文件,但无法删除文件。 当我获取有关驱动器上文件的信息时,它会显示文件 ID,但是当我使用“Trash() 函数”时,它会显示错误为“找不到文件:XXX”。

开发环境

ubuntu 20.04 on docker
python 3.7
pydrive 1.3.1

代码内容

from pydrive.auth import GoogleAuth
from oauth2client.service_account import ServiceAccountCredentials
from pydrive.drive import GoogleDrive

gauth = GoogleAuth()
scope = ['https://www.googleapis.com/auth/drive']
gauth.credentials = ServiceAccountCredentials.from_json_keyfile_name("client_secrets.json",scope)
drive = GoogleDrive(gauth)

for f in drive.ListFile({'driveId': 'AAA','corpora': 'drive','includeItemsFromAllDrives': 'true','supportsAllDrives': 'true','q': 'title = "lock" and trashed = false'}).GetList():
    print(f['title'],'  \t',f['id'])

    f_txt = drive.CreateFile(f)
    f_txt.Trash()

错误内容

root@test:~/reman/src/For_lambda/refer# python3 delete_lockfile.py 
lock     10xM-FIkMoyRIb7PC1VBxZZJn_QePxy-I
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pydrive/files.py",line 410,in _FilesTrash
    http=self.http)
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/_helpers.py",line 134,in positional_wrapper
    return wrapped(*args,**kwargs)
  File "/usr/local/lib/python3.7/site-packages/googleapiclient/http.py",line 915,in execute
    raise HttpError(resp,content,uri=self.uri)
googleapiclient.errors.HttpError:
 <HttpError 404 when requesting https://www.googleapis.com/drive/v2/files/10xM-FIkMoyRIb7PC1VBxZZJn_QePxy-I/trash?alt=json returned 
"File not found: 10xM-FIkMoyRIb7PC1VBxZZJn_QePxy-I". 
Details: "File not found: 10xM-FIkMoyRIb7PC1VBxZZJn_QePxy-I">

如上所示,我可以获得 [fileid: 10xM-FIkMoyRIb7PC1VBxZZJn_QePxy-I],但是当我删除文件时,它显示为 Not found。

我不知道发生了什么。请帮忙!谢谢,

解决方法

您好像没有上传文件。使用 drive.CreateFile(f) 您正在创建一个 GoogleDriveFile 实例,但您必须使用 Upload() 方法来这样做。这就是它向您显示 File not found 异常的原因。您可以在 for 中尝试类似的操作:

    f_txt = drive.CreateFile(f)
    f_txt.Upload()
    f_txt.Trash()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。