1
0

[Google Drive API v3] Javaでファイルのリビジョンを更新・削除する

Posted at

Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのリビジョンを更新・削除する方法
についてご紹介します。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Drive API v3] JavaでDrive APIを使う
を参照ください。

No 目次
1 リビジョンを更新
1 スコープ
2 実行
3 レスポンスの内容
2 リビジョンを削除
1 スコープ
2 実行
3 レスポンスの内容

1. リビジョンを更新

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

DriveScopes.DRIVE
DriveScopes.DRIVE_APPDATA
DriveScopes.DRIVE_FILE

⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)

1.2. 実行

リビジョンを更新したいファイルIDとリビジョンID、リビジョンの内容を指定します。

setFieldsでレンスポンスで取得したいフィールド(Reply)を指定できます。
指定しない場合は、必要最小限のレスポンスしか返ってきません。
ここでは「*」(全て取得)を指定しています。

public static void main(String[] args) throws Exception{
    Drive drive = getDrive();
    Drive.Revisions revisions = drive.revisions();
    
    Revision revision = new Revision();
    revision.setPublished(false);
    Drive.Revisions.Update update = revisions.update("ファイルID", "リビジョンID", revision);
    update.setFields("*");
    
    Revision res = update.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

PATCH:https://www.googleapis.com/drive/v3/files/{ファイルID}/revisions/{リビジョンID}
が実行されます。

1.2.2. クエリパラメータ

クエリパラメータはありません。

1.2.3. リクエストボディ

Revisionのsetメソッドにより、リクエストボディを設定できます。

メソッド 引数 説明
setPublished Boolean このリビジョンが公開されるか
ドキュメントファイルのみ
setKeepForever Boolean このリビジョンを永久に保持するか
バイナリファイルのみ
setPublishAuto Boolean 以降のリビジョンが自動的に再公開されるか
ドキュメントファイルのみ
setPublishedOutsideDomain Boolean このリビジョンがドメイン外で公開されるか
ドキュメントファイルのみ

1.3. レスポンスの内容

Reply

フィールド メソッド 戻り値 説明
id getId String リプライID
kind getKind String リソースの種類
固定文字列:"drive#reply"
createdTime getCreatedTime String 応答が作成された時刻
modifiedTime getModifiedTime String 応答が最後に変更された時刻
action getAction String 返信が親コメントに対して実行したアクション
resolve、reopen
author getAuthor User 返信の作成者
deleted getDeleted Boolean 返信が削除されたか
htmlContent getHtmlContent String HTML形式での返信の内容
content getContent String 返信のプレーンテキストの内容

User

メソッド 戻り値 説明
getDisplayName String 表示名
getEmailAddress String ユーザーの電子メールアドレス
getKind String リソースの種類
固定文字列:"drive#user"
getMe Boolean このユーザーが要求ユーザーであるか
getPermissionId String 権限リソースに表示されるユーザーID
getPhotoLink String 利用可能な場合、ユーザーのプロフィール写真へのリンク

2. リビジョンを削除

2.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

DriveScopes.DRIVE
DriveScopes.DRIVE_APPDATA
DriveScopes.DRIVE_FILE

⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取得)

2.2. 実行

削除したいリビジョンがあるファイルのIDとリビジョンIDを指定します。

画像や動画などのバイナリコンテンツのみ削除できます。
リビジョンが複数ある場合のみ削除できます。(1つのみの場合は例外)

public static void main(String[] args) throws Exception{
    Drive drive = getDrive();
    Drive.Revisions revisions = drive.revisions();

    Drive.Revisions.Delete delete = revisions.delete("ファイルID", "リビジョンID");
    delete.execute();
}

2.2.1. HTTPリクエスト

DELETE: https://www.googleapis.com/drive/v3/files/{ファイルID}/revisions/{リビジョンID}
が実行されます。

2.2.2. クエリパラメータ

クエリパラメータはありません。

2.2.3. リクエストボディ

リクエストボディはありません。

2.3. レスポンスの内容

成功した場合は何も返しません。
失敗した場合は例外を出力します。



おしまい。。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0