From b483298ecb2a8ac8f52055eb6283c862354635b2 Mon Sep 17 00:00:00 2001 From: Seil0 Date: Mon, 17 Apr 2017 23:37:06 +0200 Subject: [PATCH] google drive integration part 2 *added missing function to update existing files in google drive --- .../GoogleDriveController.class | Bin 12954 -> 13392 bytes .../GoogleDriveController.java | 73 +++++++++--------- 2 files changed, 36 insertions(+), 37 deletions(-) diff --git a/bin/cloudControllerInstances/GoogleDriveController.class b/bin/cloudControllerInstances/GoogleDriveController.class index 57d529248a826d7ba389acca9d487c574b9c0e36..5498b94c25dacf60a1fd7245e1dc9ac70807b08f 100644 GIT binary patch literal 13392 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 ScpiY~WIX4i{4zWj5dR1C2`uRV literal 12954 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 diff --git a/src/cloudControllerInstances/GoogleDriveController.java b/src/cloudControllerInstances/GoogleDriveController.java index 5168fa3..446195d 100644 --- a/src/cloudControllerInstances/GoogleDriveController.java +++ b/src/cloudControllerInstances/GoogleDriveController.java @@ -1,54 +1,40 @@ package cloudControllerInstances; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +import org.apache.commons.io.FileUtils; + import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; -import com.google.api.client.googleapis.media.MediaHttpUploader.UploadState; import com.google.api.client.http.FileContent; import com.google.api.client.http.HttpTransport; -import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.client.json.JsonFactory; +import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.client.util.DateTime; import com.google.api.client.util.store.FileDataStoreFactory; - -import com.google.api.services.drive.DriveScopes; -import com.google.api.services.drive.model.*; - -import javafx.print.Collation; - import com.google.api.services.drive.Drive; import com.google.api.services.drive.Drive.Files; -import com.google.api.services.drive.Drive.Files.Get; - -import java.io.ByteArrayOutputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.TimeZone; - -import javax.servlet.ServletInputStream; - -import org.apache.commons.io.FileUtils; +import com.google.api.services.drive.DriveScopes; +import com.google.api.services.drive.model.File; +import com.google.api.services.drive.model.FileList; public class GoogleDriveController { Drive service; - private String uploadFilePath = "C:/Users/Jannik/Documents/cemu_1.7.4/mlc01/emulatorSave/019be15c/userdata.dat"; private String cemuDirectory; private String folderID; - private java.io.File uploadFile = new java.io.File(uploadFilePath); - private File uploadedFile; private ArrayList localSavegames = new ArrayList<>(); private ArrayList cloudSavegames = new ArrayList<>(); private ArrayList localSavegamesName = new ArrayList<>(); @@ -150,7 +136,7 @@ public class GoogleDriveController { // System.out.println(localSavegamesName.get(i)+"; "+cloudSavegames.get(i).getName()); // System.out.println(localSavegames.get(a).getName()+"; "+cloudSavegames.get(i).getName().substring(9, cloudSavegames.get(i).getName().length())); -// String localSavegameName = localSavegames.get(a).getParentFile().getName()+"_"+localSavegames.get(a).getName(); +// if the file exists locally check which one is newer if(localSavegamesName.contains(cloudSavegames.get(i).getName())) { int localSavegamesNumber = localSavegamesName.indexOf(cloudSavegames.get(i).getName()); @@ -164,14 +150,15 @@ public class GoogleDriveController { System.out.println("both files are the same, nothing to do \n"); } else if(localModified >= cloudModified) { System.out.println("local is newer, going to upload local file \n"); -// updateFile(localSavegames.get(localSavegamesNumber)); + updateFile(cloudSavegames.get(i), localSavegames.get(localSavegamesNumber)); } else { System.out.println("cloud is newer, going to download cloud file \n"); -// downloadFile(cloudSavegames.get(i)); + downloadFile(cloudSavegames.get(i)); } } else { + System.out.println("file doesn't exist locally"); System.out.println("download "+cloudSavegames.get(i).getName()+" from the cloud"); -// downloadFile(cloudSavegames.get(i)); + downloadFile(cloudSavegames.get(i)); } } @@ -179,7 +166,7 @@ public class GoogleDriveController { for(int j = 0; j < localSavegames.size(); j++) { if(!cloudSavegamesName.contains(localSavegamesName.get(j))) { System.out.println("upload "+localSavegames.get(j).getName()+" to the cloud"); -// uploadFile(localSavegames.get(j)); + uploadFile(localSavegames.get(j)); } } @@ -258,7 +245,7 @@ public class GoogleDriveController { FileContent mediaContent = new FileContent("", uploadFile); File file = service.files().create(fileMetadata, mediaContent).setFields("id, parents").execute(); - uploadedFile = file; +// uploadedFile = file; System.out.println("File ID: " + file.getId()); } @@ -280,8 +267,20 @@ public class GoogleDriveController { System.out.println("done"); } - private void updateFile(java.io.File uploadFile) { + private void updateFile(File oldFile, java.io.File newFile) throws IOException { + //deleting old file + service.files().delete(oldFile.getId()).execute(); + //uploading new file + File fileMetadata = new File(); + fileMetadata.setName(newFile.getParentFile().getName()+"_"+newFile.getName()); + fileMetadata.setParents(Collections.singletonList(folderID)); + fileMetadata.setModifiedTime(new DateTime(newFile.lastModified())); + + FileContent mediaContent = new FileContent("", newFile); + File file = service.files().create(fileMetadata, mediaContent).setFields("id, parents").execute(); +// uploadedFile = file; + System.out.println("File ID: " + file.getId()); } public String getFolderID() {