我必须将一些数据加载到Google云端硬盘,但我无法使用recommended by Drive SDK way to do it:
FileContent fileContent = new FileContent(mimeType, dataFile);
try {
File file = service.files().insert(body, fileContent).execute();
return file;
} catch (IOException e) {
System.out.println("An error occured: " + e);
return null;
}
因为我的数据并不总是以java.io.File作为源。有时它可能是来自加密存储或其他云存储的InputStream,因此我无法从中获取FileContent。有没有办法将数据从InputStream加载到Google云端硬盘而不将其中间存储在文件系统上(例如,对于Dropbox API method "putFileOverwrite")?
答案 0 :(得分:3)
检查出来
File file= drive.files().insert(body,
new InputStreamContent(
fileItemStream
.getContentType(),
new ByteArrayInputStream(
IOUtils.toByteArray(fileInputStream)))).execute;