private static void checkValidPath(Path container, Path path) {
        if (!path.normalize().startsWith(container)) {
            throw new IllegalArgumentException("Invalid key name: path traversal attempt detected: " + path);
        }
    }
AbstractNio2BlobStore implicitly creates directories when creating a key /a/b/c.
When removing /a/b/c, it must clean up /a and /a/b, unless a client explicitly created a subdirectory which has file attributes.
src/main/java/org/gaul/s3proxy/nio2blob/AbstractNio2BlobStore.java