private String doUpload(String path, String mime, byte[] cksum, long size) throws IOException, PackageException { File filePath = new File(path); FileInputStream is = new FileInputStream(filePath); Map<String, String> metadata = new HashMap<String, String>(); HttpHeaderUtil.addDigest(checksumAlgorithm, cksum, metadata); metadata.put(HttpHeaderUtil.CONTENT_TYPE, mime); metadata.put(HttpHeaderUtil.CONTENT_DISPOSITION, "filename=" + filePath.getName()); metadata.put(HttpHeaderUtil.CONTENT_LENGTH, Long.toString(size)); DepositInfo info = fileManager.deposit(is, mime, null, metadata); try { is.close(); } catch (IOException e) { } return info.getMetadata().get("X-dcs-src"); }
/** * {@inheritDoc} */ @Override public void insertWorkflowState(IngestWorkflowState state, String depositId) { temporaryStateCache.put(depositId, state); InputStream stateStream = null; ByteArrayOutputStream sink = new ByteArrayOutputStream(); stateBuilder.buildIngestWorkflowState(state, sink); stateStream = new ByteArrayInputStream(sink.toByteArray()); HashMap<String, String> metadata = new HashMap<String, String>(); HttpHeaderUtil.addDigest("SHA-1", calculateChecksum("SHA-1", sink.toByteArray()), metadata); StagedFile file = fileContentStager.add(stateStream, metadata); if (file != null) { depositIdDAO.insertWorkflowAccessUri(file.getSipRef(), depositId); } temporaryStateCache.remove(depositId); }
/** * {@inheritDoc} */ @Override public void insertWorkflowState(IngestWorkflowState state, String depositId) { temporaryStateCache.put(depositId, state); InputStream stateStream = null; ByteArrayOutputStream sink = new ByteArrayOutputStream(); stateBuilder.buildIngestWorkflowState(state, sink); stateStream = new ByteArrayInputStream(sink.toByteArray()); HashMap<String, String> metadata = new HashMap<String, String>(); HttpHeaderUtil.addDigest("SHA-1", calculateChecksum("SHA-1", sink.toByteArray()), metadata); StagedFile file = fileContentStager.add(stateStream, metadata); if (file != null) { depositIdDAO.insertWorkflowAccessUri(file.getSipRef(), depositId); } temporaryStateCache.remove(depositId); }
@Override public int updateState(IngestWorkflowState state, String depositId) { temporaryStateCache.put(depositId, state); InputStream stateStream = null; //First remove the old file since fileContentStager doesn't support update String oldAccessURI = depositIdDAO.selectWorkflowStateAccessUri(depositId); fileContentStager.remove(oldAccessURI); //Now add the new staged content ByteArrayOutputStream sink = new ByteArrayOutputStream(); stateBuilder.buildIngestWorkflowState(state, sink); stateStream = new ByteArrayInputStream(sink.toByteArray()); HashMap<String, String> metadata = new HashMap<String, String>(); HttpHeaderUtil.addDigest("SHA-1", calculateChecksum("SHA-1", sink.toByteArray()), metadata); StagedFile file = fileContentStager.add(stateStream, metadata); temporaryStateCache.remove(depositId); return depositIdDAO.updateStateAccessUri(file.getSipRef(), depositId); }
@Override public int updateState(IngestWorkflowState state, String depositId) { temporaryStateCache.put(depositId, state); InputStream stateStream = null; //First remove the old file since fileContentStager doesn't support update String oldAccessURI = depositIdDAO.selectWorkflowStateAccessUri(depositId); fileContentStager.remove(oldAccessURI); //Now add the new staged content ByteArrayOutputStream sink = new ByteArrayOutputStream(); stateBuilder.buildIngestWorkflowState(state, sink); stateStream = new ByteArrayInputStream(sink.toByteArray()); HashMap<String, String> metadata = new HashMap<String, String>(); HttpHeaderUtil.addDigest("SHA-1", calculateChecksum("SHA-1", sink.toByteArray()), metadata); StagedFile file = fileContentStager.add(stateStream, metadata); temporaryStateCache.remove(depositId); return depositIdDAO.updateStateAccessUri(file.getSipRef(), depositId); }