谷歌驱动器文件上传转换为doc

时间:2017-01-26 09:04:29

标签: java file-upload google-drive-api file-conversion

我正在使用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中没有此选项。

有人可以告诉我如何在上传过程中停用此自动转换功能?

1 个答案:

答案 0 :(得分:0)

自动转换的原因是因为在文件对象中设置了mime类型,因此每个上传的文件都转换为google文档

FileStream

在上传

时,如果未在File对象中设置mimeType,则会解决此问题