2016-03-29 13 views
0

update mediaContentの使用中に不正な引数例外が発生します。google drive api javaファイルのコンテンツを更新する

private static File updateFile(Drive service, String fileId, 
     String newMimeType, String newFilename, boolean newRevision) { 
     try { 
     // First retrieve the file from the API. 
     File file = service.files().get(fileId).execute(); 


     file.setMimeType(newMimeType); 

     // File's new content. 
     java.io.File fileContent = new java.io.File(newFilename); 
     FileContent mediaContent = new FileContent(newMimeType, fileContent); 

     // Send the request to the API. 
     File updatedFile = service.files().update(fileId, file, mediaContent).execute(); 

     return updatedFile; 
     } catch (IOException e) { 
     System.out.println("An error occurred: " + e); 
     return null; 
     } 
    } 

私はこの例外を取得しています:私は、ファイルのメタデータのみを更新していたときにこの方法は、更新プログラム(ファイルID、fileMetadata)である

java.lang.IllegalArgumentException 
at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:111) 
at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:37) 
at com.google.api.client.googleapis.media.MediaHttpUploader.setInitiationRequestMethod(MediaHttpUploader.java:872) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.initializeMediaUpload(AbstractGoogleClientRequest.java:237) 
at com.google.api.services.drive.Drive$Files$Update.<init>(Drive.java:3163) 
at com.google.api.services.drive.Drive$Files.update(Drive.java:3113) 
at sai.sai.vasa.main(vasa.java:247) 

、それが正常に働いています。しかし、私はapiで定義されているように更新で3番目のパラメータとしてmediacontentを追加しようとすると、私は上記の例外を取得しています。

このエラーを解決するにはどうすればよいですか? バージョン3で行う方法。私はバージョン3でそれをやりたいだけですが、私はドライブAPIで更新コードを見つけることができませんでした。 GoogleドライブのREST APIドキュメントsampleから

答えて

0

は、更新が

File updatedFile = service.files().update(fileId, file, mediaContent).execute()以下のように実行されます。

mediaContentは、FileContentクラスです。

私はあなたがAbstractInputStreamContentにそれを型キャストを達成しようとしているのかわからないけどによりFileContentクラスにそのように型キャストする必要はありませんが、すでにAbstractInputStreamContentのサブクラスです。

あなたはそれを確認できますhere

+0

ありがとうございます。 問題のコードを編集しました。あなたは と言ったことを試しましたが、それと同じエラーです。私たちがどこで間違ったのか再度確認してください。 –