2016-04-29 10 views
1

GoogleドライブAPIを使用してGoogleドライブに画像をアップロードしようとしています。私たちのWebサイトはAzureサーバーでホストされています。アップロードはローカルPCとクラウドではない別の物理サーバーの両方で動作します。Azureでは、GoogleドライブAPIファイルのアップロードに失敗し、nullを返します。

insertRequest.ResponseBody

insertRequest.Upload()を呼び出した後にヌルいます。

しかし、エラーメッセージは表示されませんでした。ここで私が使用しているコードです。

  ServiceAccountCredential credential = new ServiceAccountCredential(
      new ServiceAccountCredential.Initializer(serviceAccountEmail) 
      { 
       Scopes = new[] { DriveService.Scope.DriveFile } 
      }.FromCertificate(certificate)); 

     // Create the service using the client credentials. 
     service = new DriveService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = credential, 
      ApplicationName = applicationName 
     }); 

     var uploadStream = new System.IO.MemoryStream(Convert.FromBase64String(base64)); 
     // Get the media upload request object. 
     Google.Apis.Drive.v2.FilesResource.InsertMediaUpload insertRequest = service.Files.Insert(
      new File 
      { 
       Title = fileTitle, 
       Parents = new List<ParentReference>() { new ParentReference() { Id = folderId } } 
      }, 
      uploadStream, 
      "image/jpeg"); 
     insertRequest.ProgressChanged += Upload_ProgressChanged; 
     insertRequest.ResponseReceived += Upload_ResponseReceived; 
     insertRequest.Upload(); 
     File file = insertRequest.ResponseBody; 
+0

Azureでホストされているウェブサイトからファイルをアップロードしようとしていますか? –

+0

はい、あなたは正しいです。回答が遅れ申し訳ございません。 –

答えて

0

問題を解決しました。それはまったく私たちの間違いでした。

指定されたIDのフォルダがありませんでした。既存のフォルダのIDを与えることで問題が解決されました。

与えられたIDのフォルダがない場合、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外がスローされます。まず、C#コードの例外であると考えました。しかし明らかに、Google SDKはそれを投げます。

関連する問題