@Override public FileDescriptor putFileIntoStorage(final TaskLifeCycle<Long> taskLifeCycle) throws FileStorageException, InterruptedException { checkNotNullArgument(taskLifeCycle); UUID fileId = (UUID) taskLifeCycle.getParams().get("fileId"); String fileName = (String) taskLifeCycle.getParams().get("fileName"); checkNotNull(fileId); checkNotNull(fileName); UploadToStorageProgressListener progressListener = (fileId1, uploadedBytes, totalBytes) -> taskLifeCycle.publish(uploadedBytes); FileDescriptor fileDescriptor = getFileDescriptor(fileId, fileName); uploadFileIntoStorage(fileId, fileDescriptor, progressListener); deleteFile(fileId); return fileDescriptor; }