2012-05-01 75 views
0

許多成功的文件更新後,有一個更新返回的文件ID是驅動器:v1而不是有效的文件ID。此外,根據App Engine日誌,有問題的請求花費了10秒(通常不到1秒),而不是因爲App Engine實例啓動時間很奇怪。爲什麼文件更新有時會返回drive:v1作爲文件ID?

我使用的代碼基於Google Drive SDK Python示例應用程序DrEdit,並且只是稍作了修改(我添加了Base64編碼,因爲我傳輸的是小圖片,而不是文本)。

更具體地講,在在的ServiceHandler類的put方法示例代碼,這段代碼應該更新文件後,返回文件ID:

# Respond with the new file id as JSON. 
    self.RespondJSON(resource['id']) 

這個工作很多次,但有一次它返回drive:v1。儘管更新仍然正確地更改了文件,但文件ID問題除外,請求按其應有的方式工作。

下面是我對受此影響的示例代碼的部分進行的修改:

resource = service.files().update(
    id=data['resource_id'], 
    newRevision=True, 
    body=None, 
    media_body=MediaInMemoryUpload(base64.b64decode(data.get('content', '')), 
              data['mimeType']), 
).execute() 

順便說一句,註釋「的新文件ID爲JSON響應」在put方法使它看起來像更新文件後文件ID會改變,這似乎並不是這種情況。這很令人困惑,除非有時文件ID在更新後實際發生更改,否則更改它可能是一個好主意。

回答

0

我已經嘗試過了,但是我無法重現這一點。有什麼方法可以定期複製樣本嗎?

此外,感謝您提出有關評論的問題,我會立即更新。

編輯:http://code.google.com/p/google-drive-sdk-samples/source/detail?r=233b6db987f633ff34929247f9045feca7550688

+0

評論更新我不認爲我可以提供再現這一點,因爲觸發,這是不以任何方式特別,之前工作的罰款無數次請求的樣本。長時間的請求可能表明App Engine或Drive API服務器出現了一些問題,導致此問題發生。但是我會在應用程序的這部分添加一些日誌記錄,以便如果再次發生這種情況,我將能夠提供更多信息。例如,如果知道文件資源的其他字段也有奇怪的值,或者它甚至是返回的文件資源,將會很有趣。 – HaiColon

相關問題