存在一個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