1

我需要幫助診斷此錯誤。其他人可以在各種平臺上獲得它(例如youtube),但大多數平臺似乎都沒有解決。對於那些報告成功的人來說,他們的解決方案並不適合我。如何解決「值不能爲空參數名稱:baseUri」

我正在使用Google Drive API,並在嘗試上傳到Google雲端硬盤時收到此錯誤消息。

我的代碼很長時間工作正常;突然,我得到這個錯誤。經過研究,我確定,我還沒有達到配額,而這些API被啓用:

  • Debuglet控制器API
  • 驅動API
  • 谷歌雲數據流API
  • 谷歌雲Dataproc API
  • 谷歌雲部署管理器API
  • 谷歌雲部署管理器V2 API
  • 谷歌雲存儲
  • 谷歌雲存儲JSON API
  • 谷歌Compute Engine的自動配置器API
  • 谷歌Compute Engine的實例組管理器API
  • 谷歌Compute Engine的實例組更新API
  • 谷歌Compute Engine執行個體組API
  • 谷歌集裝箱引擎API
  • 谷歌的機器學習API

這裏是我的代碼:

 string fileName = @"c:\temp\MyPicture.jpg"; 
     string fileTitle = @"TEST-DELETE-ME.jpg"; 
     string fileDescription = @"Test file name"; 
     string fileType = "image/jpeg"; 
     string parentId = "zmzmzmzmzmzmzmzmzmz"; 

     Google.Apis.Drive.v2.DriveService service = (Google.Apis.Drive.v2.DriveService)Service; 

     Google.Apis.Drive.v2.Data.File body = new Google.Apis.Drive.v2.Data.File(); 
     body.Title = fileTitle; 
     body.Description = fileDescription; 
     body.MimeType = fileType; 
     body.Parents = new List<ParentReference> { new ParentReference() { Id = parentId } }; 

     byte[] byteArray = System.IO.File.ReadAllBytes(fileName); 

     System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray); 

     Google.Apis.Drive.v2.FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, fileType); 

     Google.Apis.Upload.IUploadProgress progress = request.Upload(); 

     Google.Apis.Drive.v2.Data.File file = request.ResponseBody; 

     if (file == null) 
     { 
      //Here we are, and we shouldn't be! 
      //progress.exception.message = 
      // 
      //Value cannot be null. 
      //Parameter name: baseUri 
     } 

當我看到驅動API設置,這些都是配置:

  • 沒有圖標(有框爲256x265,128x128的,64×64×64,32×32,16和16×16都是空白)

  • 應用程序名稱以及短和長描述都是空白和可選的。

  • 對於驅動器集成,所有框和複選框都爲空或未選中。具體如下:

  • 「自動顯示OAuth 2.0同意...」未選中。

  • 「打開網址」爲空。

  • 默認和次要MIME類型和文件擴展名是空白

  • 「允許用戶創建新的文件...」未選中

  • 「允許用戶打開多個文件中...」未檢查

  • 「允許用戶打開可以轉換的文件...「是沒有選

  • ‘此應用程序可以啓動,並在移動瀏覽器工作正常’被選中。

用戶不使用谷歌驅動器UI通過我的應用程序創建的文件,並且是不是要在移動瀏覽器中使用。我的應用程序只上傳PDF文件到用戶的賬戶。

我的應用程序已經工作了幾個月,沒有任何問題,現在突然看到此錯誤。

我曾嘗試禁用所有AP我是,然後重新啓用它們。沒有骰子。

我嘗試過使用新的客戶端ID和密碼。沒有骰子。

我已經嘗試使用新的Gmail地址,並創建一個新的客戶端ID和祕密。沒有骰子。

我不可能是世界上唯一有這個問題的人。任何人都可以幫我解決這個問題嗎?

+0

我正在使用此庫,但對於Google雲端存儲。我遇到了兩個(迄今爲止)的異常情況,導致了這個模糊的錯誤信息。如果客戶端沒有正確的身份驗證,並且我嘗試上傳一個blob,我會得到這個「baseUri」異常。如果我試圖上傳到一個不存在的存儲桶,我會得到這個「baseUri」異常。這很可能是你正在做這樣的谷歌驅動器(不知道什麼樣的情況下,將驅動器,但肯定它們存在。)但是,我嘗試檢索斑點時,獲得適當的錯誤信息... – Anj

+0

感謝您的反饋Anj。就我而言,我的代碼允許登錄,導航文件夾,並上傳或下載文件。下載工作正常,上傳失敗。所以該文件夾存在和認證工程。我應該提到代碼沒有改變,儘管代碼一次工作。這就是爲什麼我提供了我所做的細節。有人建議我的API權限配置不正確。 – Wigwam

+0

添加了Google-Cloud-Platform標籤,希望能夠擴大與其他開發者的聯繫。 – Wigwam

回答

1

潛在的問題就像授權問題或請求的其他錯誤。但是,.NET客戶端中存在一個屏蔽錯誤的錯誤。

請參閱https://github.com/google/google-api-dotnet-client/issues/456

+0

根據要求,我提供了上面的堆棧跟蹤。對不起,我不知道如何在此論壇中對其進行格式設置,因此它不會't show well。 我應該提到我沒有遇到運行時錯誤。 – Wigwam

相關問題