Pydrive 上传错误:pydrive.files.ApiRequestError

问题描述 投票:0回答:2

我正在用 python 创建一个 Flask 应用程序,需要使用 Pydrive 库和 Google Drive API 将本地文件移动到 google 驱动器。一切顺利,直到我上传文件,然后出现以下错误:

pydrive.files.ApiRequestError:

我的代码如下。

gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
if file_ext == ".jpg":
    mimeType = "image/jpeg"
elif file_ext == ".png":
    mimeType = "image/png"
elif file_ext == ".gif":
    mimeType = "image/gif"
elif file_ext == ".mp4":
    mimeType = "video/mp4"
elif file_ext == ".mp3":
    mimeType = "audio/mpeg"
elif file_ext == ".wav":
    mimeType = "audio/wav"
elif file_ext == ".bmp":
    mimeType = "image/bmp"
elif file_ext == ".docx":
    mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
elif file_ext == ".txt":
    mimeType = "text/plain"
elif file_ext == ".MOV":
    mimeType = "video/quicktime"
elif file_ext == ".pdf":
    mimeType = "application/pdf"
file1 = drive.CreateFile({"mimeType": mimeType, "parents": [{"kind": "drive#fileLink", "id": uniqueID}]}) #uniqueID is defined earlier on based on the fileID in my database
file1.SetContentFile(filename)
file1.Upload()

任何帮助将不胜感激,因为该项目是为大学而设计的,我在 Flask 方面并不是最有经验的,更不用说 PyDrive 了!

谢谢:)

python flask google-drive-api pydrive
2个回答
0
投票

事实证明修复很简单,我没有在行中提供正确的文件ID

file1 = drive.CreateFile({"mimeType": mimeType, "parents": [{"kind": "drive#fileLink", "id": uniqueID}]})
,我正在创建自己的文件ID作为uniqueID,认为这只是分配给文件的ID,它实际上是引用的ID您要上传到的文件夹,您可以从 Google 云端硬盘文件夹的 URL 中获取该文件夹。正确的行是
file1 = drive.CreateFile({"mimeType": mimeType, "parents": [{"id": "11Ys4m6_HReCVfaZvpm4n84IMXjOX42yX"}]})
,希望可以帮助其他遇到同样问题的人!


0
投票

如果您对文件夹 ID 使用双引号而不是单引号,也会发生这种情况。 所以,这样做:

file1 = drive.CreateFile({'parents': [{'id' : 'folder id'}], 'title' : 
'your title'})

而不是这个:

file1 = drive.CreateFile({'parents': [{'id' : "folder id"}], 'title' : 
'your title'})

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.