大尺寸文件的上传下载到谷歌驱动器给错误(Uploading Downloading of large

2019-08-22 07:42发布

我创建从该用户的小应用程序可以上传自己的MS Office文件从Android设备其注册邮箱ID G_Drive帐户。 而该文件导出为PDF格式。

下面的链接,我采取的帮助形式:

https://developers.google.com/drive/v2/reference/files/insert#examples

https://developers.google.com/drive/manage-downloads#downloading_google_documents

我创建的应用程序,而对于小尺寸(<1MB)文件其工作正常,但是当我发送大尺寸的g_Drive比我收到以下错误:

java.io.exception Unexpected End of Stream
java.net.SocketTimeoutException: Read timed out

我试过的可恢复上传,但插入方法没有参数来设置此。 如果我设置上传类型一起断点续传

service.files().insert(body, mediaContent).set("upload type", "resumable");

要么

Insert insertService = service.files().insert(body, mediaContent).setConvert(true);
insertService.getMediaHttpUploader().setDirectUploadEnabled(false);         insertService.getMediaHttpUploader().setChunkSize(MediaHttpUploader.DEFAULT_CHUNK_SIZE);
file = insertService.execute();

比也是它产生同样的错误。

同样的情况也与下载.....

请给我一些解决方案...这个...

Answer 1:

不要使用基本上传了超过5MB的文件。

你需要开始上传之前设置的媒体内容的内容长度。 否则,很可能是谷歌端点无法识别上传的是成品,它等待,直到插座被超时。

InputStreamContent mediaContent = new InputStreamContent("image/jpeg", new   BufferedInputStream(
    new FileInputStream(UPLOAD_FILE)));
mediaContent.setLength(UPLOAD_FILE.length());

Insert insert = drive.files().insert(fileMetadata, mediaContent);
MediaHttpUploader uploader = insert.getMediaHttpUploader();
uploader.setDirectUploadEnabled(false);
uploader.setProgressListener(new FileUploadProgressListener());
insert.execute();

实际上有一个完整的基于Android的继续上传样本[1] 。



文章来源: Uploading Downloading of large size file to Google Drive giving error