Я пытаюсь выполнить автоматическую загрузку больших файлов на диск Google с моего локального компьютера, используя:
МОЙ КОД
public final void copyFileGoogle(String fPath, String folderIDParent, String fName) throws IOException {
Drive driveService = GoogleDriveUtils.getDriveService();
File fileMetadata = new File();
fileMetadata.setName(fName);
fileMetadata.setParents(Collections.singletonList(folderIDParent));
java.io.File filePath = new java.io.File(fPath + "\\" + fName);
FileContent mediaContent = new FileContent("multipart/related", filePath);
File file = driveService.files().create(fileMetadata, mediaContent)
.setFields("id, parents")
.execute();
, и, кажется, работает нормально, но я могу не сказать, если загрузка завершена. Я нашел здесь следующее, которое должно сказать мне, когда оно закончится:
НАЙДЕН НА ПЕРЕКЛЮЧЕНИИ СТЕКА
import com.google.api.client.googleapis.media.MediaHttpUploader;
import com.google.api.client.googleapis.media.MediaHttpUploaderProgressListener;
public class UploadProgressListener implements MediaHttpUploaderProgressListener {
public void upLoadProgress(MediaHttpUploader mediaHttpUploader) throws IOException {
if (mediaHttpUploader == null) return;
switch (mediaHttpUploader.getUploadState()) {
case INITIATION_STARTED:
break;
case INITIATION_COMPLETE:
break;
case MEDIA_IN_PROGRESS:
break;
case MEDIA_COMPLETE:
//System.out.println("Upload is complete!");
case NOT_STARTED:
break;
default:
break;
}
}
}
Что выглядит великолепно, но я не могу понять, как это реализовать или нет будет по-прежнему работать с новым Google API.
Я пытался:
ПРОБОВАНО, НО НЕ РАБОТАЕТ
UploadProgressListener ProgressListener;
ProgressListener.uploadProgress(file);
Я получаю ошибку. Он хочет MediaHttpUploader .... HELP
ОБНОВЛЕНИЕ: Я провел некоторое тестирование и нашел "в моем случае" (windows платформа), я бы предположил, все, кроме ..., программа не будет go включен до завершения текущей загрузки. Я хотел убедиться, что я не перерасходу налог на систему, на которой я работал, так что это было все, что мне было нужно. Если вам действительно нужно знать, что в этом случае загрузка была завершена, я думаю, вы могли бы просто выполнить System.out.println ("Complete.");
Если кто-то действительно заставит UploadProgressListener работать, я все равно люблю знать как. Просто из любопытства.