我目前正在我的应用程序(DataSync)中实现 Google Drive,并遇到了一点性能问题。我似乎无法让文件并行上传,相同的逻辑适用于其他云,所以我很确定这要么是 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() 命令,但它们只会一个接一个地上传(就好像它是一个“同步”函数一样)。有什么方法可以同时上传到云端硬盘工作吗?