/** * Verifies that the saved file is the size expected in bytes. If expected bytes is specified as * <= 0 then size verification is not performed. * * @throws IOException */ protected void verifyLength() throws IOException { if (this.expectedLength > 0) { if (this.actualLength != this.expectedLength) { throw new IOException( format( "Saved stream''s length invalid - Expected: {0} ({1}), Actual: {2} ({3})", this.expectedLength, Util.byteCountToDisplaySize(this.expectedLength), this.actualLength, Util.byteCountToDisplaySize(this.actualLength))); } } }
@PrePersist protected void onCreate() { this.timestamp = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timestamp.getTime()); calendar.add(Calendar.DATE, 30); this.expiry = calendar.getTime(); this.accessCode = Math.round(Math.random() * (double) Long.MAX_VALUE); this.accessPassword = Util.generateRandomString( Integer.parseInt(GlobalProps.getProperty(GlobalProps.PROP_DROPBOX_PASSWORDLENGTH))); }
/** * getItemByName * * <p>Gets the fedora object given the pid * * <pre> * Version Date Developer Description * 0.1 26/04/2012 Genevieve Turner (GT) Initial * 0.2 02/05/2012 Genevieve Turner (GT) Updated to fix issue with url encoded pid * 0.3 08/05/2012 Genevieve Turner (GT) Updated to use newly created util decode function * </pre> * * @param id The fedora object pid * @return Returns the FedoraObject of the given pid */ @Override public FedoraObject getItemByPid(String pid) { String decodedPid = null; decodedPid = Util.decodeUrlEncoded(pid); if (decodedPid == null) { return null; } FedoraObjectDAOImpl object = new FedoraObjectDAOImpl(); FedoraObject item = object.getSingleByName(decodedPid); if (item != null) { LOGGER.trace("Retrieved item {}", item.getObject_id()); } return item; }
@Override public UploadedFileInfo call() throws Exception { UploadedFileInfo ufi; Path targetFile = createTempFile(); StopWatch sw = new StopWatch(); sw.start(); try { LOGGER.debug( "Saving {} ({}) Expected MD5:{}...", targetFile.toString(), Util.byteCountToDisplaySize(expectedLength), expectedMd5); this.actualLength = saveStreamToFile(this.dis, targetFile); this.actualMd5 = Hex.encodeHexString(dis.getMessageDigest().digest()); verifyExpecteds(); ufi = new UploadedFileInfo(targetFile, this.actualLength, this.actualMd5); sw.stop(); LOGGER.debug( "Saved {} ({}) Computed MD5:{}, Time: {}, Speed: {}", ufi.getFilepath().toString(), Util.byteCountToDisplaySize(ufi.getSize()), ufi.getMd5(), sw.getTimeElapsedFormatted(), sw.getRate(ufi.getSize())); } catch (Exception e) { LOGGER.error( "Error saving {} ({} bytes) Expected MD5:{} - {}", targetFile.toString(), this.expectedLength, this.expectedMd5, e.getMessage()); throw e; } finally { IOUtils.closeQuietly(dis); } return ufi; }