我正在使用google drive V3 REST api从POST请求中上传多部分文件&下面是java代码
String accessToken = "xyz";
Credential credential = new GoogleCredential().setAccessToken(accessToken);
Drive service = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName("xyz")
.build();
File fileMeta = new File();
fileMeta.setName(fileName);
fileMeta.setMimeType("application/vnd.google-apps.file");
if (!parentFolderId.isEmpty()) {
fileMeta.setParents(Collections.singletonList(parentFolderId));
}
//Code to upload file in GDrive
java.io.File tmpFile = java.io.File.createTempFile("uploadFile", ".tmp");
//Writing the file content to the new file
InputStream in = multipartFile.getInputStream();
FileOutputStream fos = new FileOutputStream(tmpFile);
IOUtils.copy(in, fos);
in.close();
fos.close();
tmpFile.deleteOnExit();
FileContent mediaContent = new FileContent(null, tmpFile);
File file = service.files().create(fileMeta, mediaContent)
.setFields("id")
.execute();
上传工作正常,但所有上传内容都会自动转换为我不想要的文档。我在问题Google Drive: Automatically convert files on upload?中看到,在插入期间需要设置convert = true。但是V3中没有此选项。
有人可以告诉我如何在上传过程中停用此自动转换功能?
答案 0 :(得分:0)
自动转换的原因是因为在文件对象中设置了mime类型,因此每个上传的文件都转换为google文档
FileStream
在上传
时,如果未在File对象中设置mimeType,则会解决此问题