【发布时间】:2017-02-17 22:09:02
【问题描述】:
我知道similar questions 之前有人问过。然而,他们都没有得到答复。
我的问题如下:
要将文件上传到 Google Drive,您需要创建 DriveContents。
您可以通过凭空创造它们来做到这一点:
DriveApi.DriveContentsResult driveContentsResult = Drive.DriveApi.newDriveContents(getGoogleApiClient()).await();
DriveContents contents = driveContentsResult.getDriveContents();
或者你通过打开一个已经存在的文件来做到这一点:
DriveApi.DriveContentsResult driveContentsResult = driveFileResult.getDriveFile().open(getGoogleApiClient(), DriveFile.MODE_WRITE_ONLY, null).await();
DriveContents contents = driveContentsResult.getDriveContents();
您现在可以用数据填充DriveContents。您可以通过获取OutputStream 并写信给OutputStream 来做到这一点:
FileOutputStream fileOutputStream = new FileOutputStream(driveContentsResult.getDriveContents().getParcelFileDescriptor().getFileDescriptor());
现在问题从这里开始:填写此OutputStream,Google Play 服务只需复制我要上传的文件并创建本地副本。如果您的手机上有 0.5 GB 的可用空间,并且您想上传 1.3 GB 的文件,那么这是行不通的!存储空间不足。
那么它是如何完成的呢?有没有办法通过 GDAA 直接上传到 Google Drive,而不需要先创建本地副本,然后再上传?
Google REST API 处理这些上传有什么不同吗?可以通过 Google REST API 完成吗?
编辑: 这似乎无法通过 GDAA 完成。对于寻找使用 Google REST API 进行可恢复上传的方法的人,请查看my example here on StackOverflow。
【问题讨论】: