Google Drive Api(V2)`corpora`选项

时间:2017-09-13 21:19:08

标签: google-drive-api

corpora有哪些可能的选择?它们是什么意思?

我想在目录中获取我有权访问的所有文件的列表,使用.files().list( ... )

https://developers.google.com/drive/v2/reference/files/list

我曾经运行过以下代码:

SearchParameterString = "'" + FolderId + "' in parents"
#NOTE there is a return limit of 460 files (falsly documented as 1000)
DriveFileItems = []
PageToken = None
while True:
    try:
        DriveFilesObject = Service.files().list(
            q           = SearchParameterString,
            #corpora     = 'domain', #'default',#SearchOwners, 
            corpus     = 'DOMAIN',  #----> DEPRICATED!!! 
            maxResults  = 200,
            pageToken   = PageToken,
            ).execute()

        DriveFileItems.extend(DriveFilesObject['items'])
        PageToken = DriveFilesObject.get('nextPageToken')
        if not PageToken:
            break
    except errors.HttpError, error:
        print 'An error occurred: %s' % error
        break

以上代码在6月25日为我破解了。出现以下错误消息:

https://www.googleapis.com/drive/v2/files?q=%27___myFolderIdHere___%27+in+parents&alt=json&corpus=DOMAIN&maxResults=200返回“无效查询”>

我发现这是因为他们弃用参数corpus而转而使用corpora

google drive api corpora有哪些可能的选择? 他们是什么意思?

corpora = 'domain',   #DOES NOT WORK

如何确保获取完整的文件列表,而不仅仅是我拥有的文件? (之前我不得不从DEFAULT切换到DOMAIN,因为我没有获得完整的文件列表会遇到各种各样的问题,并且在尝试使用驱动器api跨机器同步目录时最终上传了许多重复项)

我发现了这个:     https://github.com/google/google-api-go-client/issues/218

并且:     https://godoc.org/golang.org/x/oauth2/jwt#Config

但不知道冒充用户意味着什么,我也不认为我想这样做。

编辑:我碰巧使用python - 但问题是语言无关

2 个答案:

答案 0 :(得分:1)

我认为你可以在Migrate from Drive v2中看到,唯一的选择是:

Method       Parameter         Alternative 
files.list  corpus=DEFAULT  corpus=user
files.list  corpus=DOMAIN   corpus=domain

答案 1 :(得分:0)

使用drive api v2:

corpora = 'domain'根本不起作用......

corpus = 'DOMAIN'根本不起作用......

corpora = 'default'似乎可以解决问题。

corpora = 'default'现在以corpus = 'DOMAIN'之前的工作方式工作。

其他用户创建的文件不会被省略(如我所愿)。谷歌在没有公布的情况下改变了这一功能,并且在2017年6月25日我无处可去。