我目前正在我的应用程序(DataSync)中实施Google云端硬盘,并遇到了一些性能问题。我似乎无法并行上传文件,同样的逻辑可以与其他云一起工作,所以我很确定它是Drive SDK的“问题”或者我使用它的方式。
以下是我目前正在从InputStream上传文件的方式。
InputStreamContent content = new InputStreamContent("datasync/appdata", pIn);
Insert insertRequest = Global.drive.files().insert(body, content).setConvert(false);
int size = (int) Math.ceil((double) localFile.length() / MediaHttpUploader.MINIMUM_CHUNK_SIZE) * MediaHttpUploader.MINIMUM_CHUNK_SIZE;
if(size > 2097152) // 2MB
{
insertRequest.getMediaHttpUploader().setChunkSize(2097152);
}
else
{
insertRequest.getMediaHttpUploader().setChunkSize(size);
}
com.google.api.services.drive.model.File driveFile = insertRequest.execute();
我有6个线程运行此代码,虽然它们都到达.execute()命令,但它们只会逐个上传(就像它是一个“同步”函数)。有什么方法可以上传到Drive并行工作吗?