で複数のリソースを取得します。複数のドキュメントIDが指定されている複数のドキュメントエントリを(1回の呼び出しで)取得する同様の方法はありますか?は同時にDocsClient.get_resource_by_id機能は、単一のIDのドキュメントエントリを取得するために存在するID
私のアプリケーションは、効率的に、私はIDを持っている複数のファイルからコンテンツをダウンロードする必要があります。適切なダウンロードURLにアクセスするためにドキュメントエントリを取得する必要があります(手動でURLを作成することもできますが、これはAPIドキュメントでは推奨されていません)。文書タイプを有することも有利であり、スプレッドシートの場合には、個々のワークシートにアクセスするために文書エントリが必要である。
全体的に私は、I/O待機を削減しようとしているので、私はドキュメントのID検索をバンドルすることができる方法があるなら、それは私にいくつかのI/Oの費用を節約します。
[編集](アランの溶液から)GDATAのV2.0にバックポートAddQuery:
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()
を経由します。
entry = atom.core.parse(entry.to_string(), gdata.docs.data.Resource)
注:バッチクエリは、現在(クライアントauth_tokenが偽装ユーザーに置き換えられ、バッチエントリのクエリのURLで管理requestor_idと「/ default」を使用しています)、ユーザーの偽装との二足歩行のOAuthでは動作しません。したがって、異なる所有者を持つアイテムを検索する場合は、この全体の運動は問題になります。 – technomage