code: static void uploadImageFromStorage(String fsName,
        String machine, int port,
        NNStorage storage, long txid) throws IOException {
      
      String fileid = GetImageServlet.getParamStringToPutImage(
          txid, machine, port, storage);
  
      LOG.info("Image upload: Posted URL " + fsName + fileid);
      
      // this doesn't directly upload an image, but rather asks the NN
      // to connect back to the 2NN to download the specified image.
      TransferFsImage.getFileClient(fsName, fileid, null, storage, false);
      LOG.info("Uploaded image with txid " + txid + " to namenode at " +
          fsName);
    }
docs: Requests that the NameNode download an image from this node.
  
  @param fsName the http address for the remote NN
  @param imageListenAddress the host/port where the local node is running an
  HTTPServer hosting GetImageServlet
  @param storage the storage directory to transfer the image from
  @param txid the transaction ID of the image to be uploaded