protected InputStream doGetInputStream() throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); driveService.files().get( id ).executeMediaAndDownloadTo( out ); ByteArrayInputStream in = new ByteArrayInputStream( out.toByteArray() ); return in; }
public GoogleDriveGetResult getResource(GoogleDriveGetParameters parameters) throws IOException { String fileId = parameters.getResourceId(); File file = getMetadata(fileId, "id,mimeType,fileExtension"); String fileMimeType = file.getMimeType(); String outputFileExt = "." + file.getFileExtension(); LOG.debug("[getResource] Found fileName `{}` [id: {}, mime: {}, ext: {}]", parameters.getResourceId(), fileId, fileMimeType, file.getFileExtension()); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); /* Google Apps types */ if (GoogleDriveMimeTypes.GOOGLE_DRIVE_APPS.contains(fileMimeType)) { String exportFormat = parameters.getMimeType().get(fileMimeType).getMimeType(); outputFileExt = parameters.getMimeType().get(fileMimeType).getExtension(); drive.files().export(fileId, exportFormat).executeMediaAndDownloadTo(outputStream); } else { /* Standard fileName */ drive.files().get(fileId).executeMediaAndDownloadTo(outputStream); } byte[] content = outputStream.toByteArray(); if (parameters.isStoreToLocal()) { String localFile = parameters.getOutputFileName(); if (parameters.isAddExt()) { localFile = localFile + ((localFile.endsWith(outputFileExt)) ? "" : outputFileExt); } LOG.info(messages.getMessage("message.writing.resource", parameters.getResourceId(), localFile)); try (FileOutputStream fout = new FileOutputStream(localFile)) { fout.write(content); fout.close(); } } return new GoogleDriveGetResult(fileId, content); }
public GoogleDriveGetResult getResource(GoogleDriveGetParameters parameters) throws IOException { String fileId = parameters.getResourceId(); File file = getMetadata(fileId, "id,mimeType,fileExtension"); String fileMimeType = file.getMimeType(); String outputFileExt = "." + file.getFileExtension(); LOG.debug("[getResource] Found fileName `{}` [id: {}, mime: {}, ext: {}]", parameters.getResourceId(), fileId, fileMimeType, file.getFileExtension()); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); /* Google Apps types */ if (GoogleDriveMimeTypes.GOOGLE_DRIVE_APPS.contains(fileMimeType)) { String exportFormat = parameters.getMimeType().get(fileMimeType).getMimeType(); outputFileExt = parameters.getMimeType().get(fileMimeType).getExtension(); drive.files().export(fileId, exportFormat).executeMediaAndDownloadTo(outputStream); } else { /* Standard fileName */ drive.files().get(fileId).executeMediaAndDownloadTo(outputStream); } byte[] content = outputStream.toByteArray(); if (parameters.isStoreToLocal()) { String localFile = parameters.getOutputFileName(); if (parameters.isAddExt()) { localFile = localFile + ((localFile.endsWith(outputFileExt)) ? "" : outputFileExt); } LOG.info(messages.getMessage("message.writing.resource", parameters.getResourceId(), localFile)); try (FileOutputStream fout = new FileOutputStream(localFile)) { fout.write(content); fout.close(); } } return new GoogleDriveGetResult(fileId, content); }