code: @Override
    public boolean rename(final Path src, final Path dst) throws IOException {
      LOG.debug("rename from {} to {}", src, dst);
      if (src == null || dst == null) {
        LOG.debug("Source path and dest path can not be null");
        return false;
      }
      if (stocatorPath.isTemporaryPath(src)) {
        return true;
      }
      LOG.debug("Checking if source exists {}", src);
      if (!exists(src)) {
        LOG.debug("Source {} does not exists. Exit", src);
        return false;
      }
      final Path srcPath = storageClient.qualify(src);
      final Path dstPath = storageClient.qualify(dst);
      return storageClient.rename(hostNameScheme, srcPath.toString(), dstPath.toString());
    }
docs: {@inheritDoc}
  We don't need rename on temporary objects, since objects are already were created with real
  names.