ObjectEndPoint::head shouldn't make a call to getBucket. If it is mandatory, it will be nice to introduce a guava cache to reduce the expensive lookup. Note that there wouldn't be millions of buckets in the volume. So having guava cache with TTL will be nice to have.
Lines of interest: