2015-03-24 70 views
0

我正在使用Google Drive SDK使用服務帳戶(訪問和刷新令牌等)查詢和檢索文件。 問題不在於它沒有工作,而是在一段時間之後,第一個查詢請求顯着慢於處理請求。我嘗試通過檢索Drive.About「啓動連接」,然後做任何「較重」的請求,但似乎沒有幫助。此外,根據雲端硬盤最佳做法,我已實施部分字段響應。任何想法或額外的信息需要?Google Drive SDK(java)對文件列表的查詢請求很慢

  • 請注意,靜態Drive服務變量在其初始檢索後被緩存,並在單件服務中重用。

**通過慢我的意思是2000+毫秒,沒有任何指數回退,平均響應時間通常是100-200毫秒

樣品之間:

恢復文件

Drive service = retrieveGoogleDriveService(); 

Files.List request = service.files().list() 
    .setQ(q + " AND trashed=false AND hidden=false") 
    .setFields(fields); 

FileList files = request.execute(); 

方法:retrieveGoogleDriveService

GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(jsonFactory, new FileReader(new java.io.File(Home.class.getResource(CLIENT_SECRET).toURI()))); 

GoogleCredential credential = new GoogleCredential.Builder() 
    .setTransport(httpTransport) 
    .setJsonFactory(jsonFactory) 
    .setClientSecrets(clientSecrets) 
    .build() 
     .setAccessToken(ACCESS_TOKEN) 
     .setRefreshToken(REFRESH_TOKEN); 

service = new Drive.Builder(httpTransport, jsonFactory, credential) 
       .setApplicationName([app name]) 
       .build(); 

謝謝你的時間提前

+0

附加信息: 執行()期間引發的異常:是NoHttpResponseException,並且消息是「目標服務器無法響應」。使用指數回退,並在每次等待後拋出相同的異常和消息 – VAM 2015-03-25 02:48:16

+0

您是否看到類似的響應時間使用文檔中的「嘗試」工具? – 2015-03-25 16:48:48

+0

謝謝您的回覆,但我沒有回覆時間問題。這個問題與未知時間段之後的第一個請求/響應有關。如上所述,目標服務器在初始請求中沒有響應,但隨後在下一個請求中變爲「響應」。 – VAM 2015-03-25 20:57:31

回答

0

問題是由於使用ApacheHttpTransport,而不是推薦GoogleNetHttpTransport.newTrustedTransport()。

+0

小心分享您所做的相關代碼更改? – mmcrae 2015-05-01 19:00:00

+0

**來自:** ApacheHttpTransport httpTransport = new ApacheHttpTransport(); **收件人:** HttpTransport serviceHttpTransport = GoogleNetHttpTransport.newTrustedTransport(); – VAM 2015-09-15 12:48:13