我正在尝试从谷歌驱动器下载PyDrive文件。 我遵循了http://pythonhosted.org/PyDrive/filemanagement.html#download-file-content指令。它在我自己的领域正常运作。
日志如下。
$ python driveDownload.py
Your browser has been opened to visit:
https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F2Fwww.googleapis.com%2Fauth%2Fdrive&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&response_type=code&client_id=837780293427-8m0mkibmrn8gg44i77pjg54ga70kpgae.apps.googleusercontent.com&access_type=offline
Authentication successful.
title: a.xlsx, id: 0BzV-wECmF8MQTkdyQ0FHaVdwYlU
file Title identiefied :a.xlsx
aFromDrive.xlsx downloaded
我正在尝试从我的客户端域中执行相同的操作,并且正在发出以下错误
$ python driveDownload.py
https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&response_type=code&client_id=971731530622-7tdt9qhakv6q7i4edpfnqb5h7826eslv.apps.googleusercontent.com&access_type=offline
Authentication successful.
title: a.xlsx, id: 1l073W5s4dE0-dhFUXAMB-XROvOUC2z51NbfY69-bvIo
file Title identiefied :a.xlsx
Traceback (most recent call last):
File "driveDownload.py", line 29, in <module>
myFile.GetContentFile(myLocalPath)
File "build/bdist.linux-x86_64/egg/pydrive/files.py", line 167, in GetContentFile
File "build/bdist.linux-x86_64/egg/pydrive/files.py", line 36, in _decorated
File "build/bdist.linux-x86_64/egg/pydrive/files.py", line 210, in FetchContent
pydrive.files.FileNotDownloadableError: No downloadLink/exportLinks for mimetype found in metadata
我的代码driveDownload.py位于
之下from pydrive.auth import GoogleAuth
import os
#authentication via the browser
#note... client_secrets.json is required for this that leads
#to the user authentication
gauth = GoogleAuth()
# gauth.LocalWebserverAuth()
from pydrive.drive import GoogleDrive
#accessing the drive
drive = GoogleDrive(gauth)
# Auto-iterate through all files that matches this query
file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()
fileName2Download= 'a.xlsx'
myLocalPath = 'aFromDrive.xlsx'
for file1 in file_list:
print 'title: %s, id: %s' % (file1['title'], file1['id'])
if file1['title'] == fileName2Download:
print ' file Title identiefied :%s'% (file1['title'])
myFile = drive.CreateFile({'id': file1['id']})
if os.path.exists(myLocalPath):
os.remove(myLocalPath)
myFile.GetContentFile(myLocalPath)
print '%s downloaded ' %(myLocalPath)
break
# file1.download()
是否有某些设置缺失?我能够列出客户端谷歌硬盘中的所有文件。但是,当我尝试将文件下载到本地磁盘时出现错误
答案 0 :(得分:1)
我收到此错误是因为我试图直接下载文件夹。仔细检查你的mimeType是否可以通过PyDrive下载。
答案 1 :(得分:0)
在我的ID错误的情况下,我使用了文件所在文件夹的ID,因此请确保ID仅是该文件的ID,而不是文件夹的
答案 2 :(得分:0)
如果要创建文件夹,请确保复制文件ID(右键单击->获取可共享链接->复制链接的最后一部分),而不是文件夹ID。