使用适用于Android的Drive API进行可恢复上传

Ric*_*ior 6 android file-upload google-drive-api

我想使用驱动器api将大文件(> 10Mb)上传到Google云端硬盘.它适用于较小的文件(当有良好的wifi时),使用直接上传:

Drive.Files.Insert insert = driveService.files().insert(fileMetadata, mediaContent);
MediaHttpUploader uploader = insert.getMediaHttpUploader();
uploader.setChunkSize(UPLOAD_CHUNK_SIZE);
uploader.setDirectUploadEnabled(true);
insert.execute();
Run Code Online (Sandbox Code Playgroud)

现在,假设我们正在上传更大的文件.我们希望跟踪连接,因此我们使用MediaHttpUploader方法给出的可恢复上传...

uploader.setDirectUploadEnabled(false);
uploader.setProgressListener(new MediaHttpUploaderProgressListener() {
    @Override
    public void progressChanged(MediaHttpUploader mediaHttpUploader) throws IOException {
        switch (mediaHttpUploader.getUploadState()) {
            case INITIATION_STARTED:     break;
            case INITIATION_COMPLETE:  break;
            case MEDIA_IN_PROGRESS:   break;
            case MEDIA_COMPLETE:        break;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

好.但是没有MEDIA_FAILED的状态,我是否正确?当上传未达到MEDIA_COMPLETE时,我该怎么办?

此外,我找不到恢复上传的方法.因此,即使100Mb上传率达到90%并且失败,我所能做的就是重新启动它?

PS:此问题之前已报告未成功 检查上传和下载的进度(适用于Android或Java的Google Drive API) Android Google Drive Resumable Upload经常失败