驱动器 REST API V3 Java 包装器 - 上传有进度
Drive REST API V3 Java Wrapper - upload with progress
我正在尝试使用 V3 API 将新文件上传到驱动器帐户并获取上传进度。我当前的(工作)代码如下:
val fileMetadata = File()
fileMetadata.name = newItemName
fileMetadata.parents = mutableListOf(destFolder.remoteId)
val osFile = java.io.File(filePath)
val mediaContent = FileContent(getMimeType(filePath), osFile)
val file = googleDriveService.files().create(fileMetadata, mediaContent)
.setFields("*")
.execute()
是否可以向当前解决方案添加某种进度侦听器,或者我需要使用其他服务(如 MediaHttpUploader)?
你可以参考这个documentation,它使用了CustomProgressListener
class。
class CustomProgressListener implements MediaHttpDownloaderProgressListener {
public void progressChanged(MediaHttpDownloader downloader) {
switch (downloader.getDownloadState()) {
case MEDIA_IN_PROGRESS:
System.out.println(downloader.getProgress());
break;
case MEDIA_COMPLETE:
System.out.println("Download is complete!");
}
}
}
OutputStream out = new FileOutputStream("/tmp/driveFile.jpg");
DriveFiles.Get request = drive.files().get(fileId);
request.getMediaHttpDownloader().setProgressListener(new CustomProgressListener());
request.executeMediaAndDownloadTo(out);
以下是您可以使用的其他参考资料:
- File Upload with Java (with progress bar)
- Google Drive API Progress Bar Bug
我正在尝试使用 V3 API 将新文件上传到驱动器帐户并获取上传进度。我当前的(工作)代码如下:
val fileMetadata = File()
fileMetadata.name = newItemName
fileMetadata.parents = mutableListOf(destFolder.remoteId)
val osFile = java.io.File(filePath)
val mediaContent = FileContent(getMimeType(filePath), osFile)
val file = googleDriveService.files().create(fileMetadata, mediaContent)
.setFields("*")
.execute()
是否可以向当前解决方案添加某种进度侦听器,或者我需要使用其他服务(如 MediaHttpUploader)?
你可以参考这个documentation,它使用了CustomProgressListener
class。
class CustomProgressListener implements MediaHttpDownloaderProgressListener {
public void progressChanged(MediaHttpDownloader downloader) {
switch (downloader.getDownloadState()) {
case MEDIA_IN_PROGRESS:
System.out.println(downloader.getProgress());
break;
case MEDIA_COMPLETE:
System.out.println("Download is complete!");
}
}
}
OutputStream out = new FileOutputStream("/tmp/driveFile.jpg");
DriveFiles.Get request = drive.files().get(fileId);
request.getMediaHttpDownloader().setProgressListener(new CustomProgressListener());
request.executeMediaAndDownloadTo(out);
以下是您可以使用的其他参考资料:
- File Upload with Java (with progress bar)
- Google Drive API Progress Bar Bug