存在一个DocsClient.get_resource_by_id函数来获取单个ID的文档录入同时得到多个资源。在给定多个文档ID的情况下,是否有类似的方式来获取(在单个调用中)多个文档条目?通过ID
我的应用程序需要有效地下载从我有ID的多个文件的内容。我需要获取文档条目以访问相应的下载URL(我可以手动构建URL,但API文档中不鼓励这样做)。这也是有利的文档类型,并且在电子数据表的情况下,文档项,以便访问单个工作表所需的。
总的来说,我试图减少I/O等待,因此,如果有一种方法,我可以捆绑文档ID查找,它会救我一些I/O开销。
[编辑]向后移植的AddQuery到GDATA V2.0(从阿兰的溶液):
client = DocsClient()
# ...
request_feed = gdata.data.BatchFeed()
request_entry = gdata.data.BatchEntry()
request_entry.batch_id = gdata.data.BatchId(text=resource_id)
request_entry.batch_operation = gdata.data.BATCH_QUERY
request_feed.add_batch_entry(entry=request_entry, batch_id_string=resource_id, operation_string=gdata.data.BATCH_QUERY)
batch_url = gdata.docs.client.RESOURCE_FEED_URI + '/batch'
rsp = client.batch(request_feed, batch_url)
rsp.entry
是BatchEntry对象,这似乎指向正确的资源的集合,但是其从不同的条目我通常会通过client.get_resource_by_id()
获得。
我的解决方法是gdata.data.BatchEntry
对象转换为gdata.docs.data.Resource
对象ILKE这样的:
entry = atom.core.parse(entry.to_string(), gdata.docs.data.Resource)
注:批量查询,目前不与用户模拟(其中,客户端的auth_token使用在批量录入查询网址管理员requestor_id和“/默认”是由模拟用户更换)双向OAuth工作。因此,如果您打算查找不同所有者的项目,则整个练习都没有实际意义。 – technomage 2012-04-27 15:26:19