// rendition = ...; // original rendition object created as above // newInputStream = ...; // new asset received from your webservice Asset asset = rendition.getAsset(); asset.addRendition("original", newInputStream, rendition.getMimeType());
void saveImage(Asset asset, Rendition toReplace, Layer layer, String mimetype, double quality, WorkflowHelper workflowHelper) throws IOException { File tmpFile = File.createTempFile(getTempFileSpecifier(), "." + workflowHelper.getExtension(mimetype)); OutputStream out = FileUtils.openOutputStream(tmpFile); InputStream is = null; try { layer.write(mimetype, quality, out); is = FileUtils.openInputStream(tmpFile); asset.addRendition(toReplace.getName(), is, mimetype); } finally { IOUtils.closeQuietly(out); IOUtils.closeQuietly(is); FileUtils.deleteQuietly(tmpFile); } }
void saveImage(Asset asset, Rendition toReplace, Layer layer, String mimetype, double quality) throws IOException { File tmpFile = File.createTempFile(getTempFileSpecifier(), "." + getExtension(mimetype)); OutputStream out = FileUtils.openOutputStream(tmpFile); InputStream is = null; try { layer.write(mimetype, quality, out); is = FileUtils.openInputStream(tmpFile); asset.addRendition(toReplace.getName(), is, mimetype); } finally { IOUtils.closeQuietly(out); IOUtils.closeQuietly(is); FileUtils.deleteQuietly(tmpFile); } }
@Override public boolean hasFinished(Serializable serializable, WorkItem workItem, WorkflowSession workflowSession, MetaDataMap metaDataMap) { if (serializable == null) { return true; } ResourceResolver resolver = workflowSession.adaptTo(ResourceResolver.class); Asset asset = getAssetFromPayload(workItem, resolver); if (asset == null) { log.error("job started, but asset no longer exists."); return true; } if (serializable instanceof String) { TranscriptionService.Result result = transcriptionService.getResult((String) serializable); if (result.isCompleted()) { try { asset.addRendition("transcription.txt", new ByteArrayInputStream(result.getContent().getBytes("UTF-8")), "text/plain"); log.info("Transcription for {} created.", asset.getPath()); } catch (UnsupportedEncodingException e) { log.error("Unable to save new rendition", e); } return true; } else { return false; } } else { log.error("Unexpected serializable {}", serializable); return true; } }
@Override public boolean hasFinished(Serializable serializable, WorkItem workItem, WorkflowSession workflowSession, MetaDataMap metaDataMap) { if (serializable == null) { return true; } ResourceResolver resolver = workflowSession.adaptTo(ResourceResolver.class); Asset asset = getAssetFromPayload(workItem, resolver); if (asset == null) { log.error("job started, but asset no longer exists."); return true; } if (serializable instanceof String) { TranscriptionService.Result result = transcriptionService.getResult((String) serializable); if (result.isCompleted()) { try { asset.addRendition("transcription.txt", new ByteArrayInputStream(result.getContent().getBytes("UTF-8")), "text/plain"); log.info("Transcription for {} created.", asset.getPath()); } catch (Exception e) { log.error("Unable to save new rendition", e); } return true; } else { return false; } } else { log.error("Unexpected serializable {}", serializable); return true; } }
final File transcodedAudio = ffmpegWrapper.transcode(); fis = new FileInputStream(transcodedAudio); asset.addRendition(renditionName, fis, ffmpegWrapper.getOutputMimetype()); try { Files.delete(transcodedAudio.toPath());
final File transcodedAudio = ffmpegWrapper.transcode(); fis = new FileInputStream(transcodedAudio); asset.addRendition(renditionName, fis, ffmpegWrapper.getOutputMimetype()); if (!transcodedAudio.delete()) { log.error("Transcoded audio file @ {} coud not be deleted");
private void importRenditions(FileOrRendition file, ActionManager manager) { file.getRenditions().forEach((rendition, renditionFile) -> { manager.deferredWithResolver(Actions.retry(retries, retryPause, rr -> { try { long lineNumber = fileData.getRowNum(renditionFile.getProperties()); manager.setCurrentItem(String.format("Rendition %s (line %s)", renditionFile.getItemName(), lineNumber)); String renditionName = rendition; String type = mimetypeService.getMimeType(renditionFile.getName()); String extension = renditionFile.getName().substring(renditionFile.getName().lastIndexOf('.') + 1).toLowerCase(); if (renditionName.lastIndexOf('.') <= 0) { renditionName += "." + extension; } if (!dryRunMode) { commitAndRefresh(rr); Resource assetResource = rr.getResource(file.getNodePath(preserveFileName)); if (assetResource == null) { throw new ResourceNotFoundException("Unable to find asset resource " + file.getNodePath(preserveFileName)); } Asset asset = assetResource.adaptTo(Asset.class); asset.addRendition(renditionName, renditionFile.getSource().getStream(), type); } incrementCount(importedRenditions, 1L); incrementBytes(importedData, renditionFile.getSource().getLength()); trackDetailedActivity(file.getNodePath(preserveFileName), "Import Rendition", "Add rendition " + renditionName, renditionFile.getSource().getLength()); } finally { renditionFile.getSource().close(); } })); }); }