private String storeFile(final byte[] file, final Long blobId,
			final String basePathString, final String fileName) {
		final File basePath = new File(basePathString);
		final File fileFolder = new File(basePath, String.valueOf(blobId));

		// 1) Create folder with id as a name under base path folder
		// 2) Store bytes/file in that folder you have just created
		// 3) Return sub file path you have just created for a file e.g:
		// /111/abc.jpg
		

		try {
			final boolean fileFolderCreated = fileFolder.exists()? true: fileFolder.mkdirs();
			if (fileFolderCreated) {
				final File actualFile = new File(fileFolder, fileName);
				if(!actualFile.exists()){
					FileUtils.writeByteArrayToFile(actualFile, file);
				}
				final String subPathString = "/" + String.valueOf(blobId) + "/"
						+ fileName;
				return getValidatedSubPath(subPathString, basePathString);
			}

		} catch (final Exception e) {
			throw new RuntimeException(e);
		}

		throw new RuntimeException("Could not store a file on "+fileFolder.getAbsolutePath());
	}