func (pt *PassThru) Read(p []byte) (int, error) {
	n, err := pt.Reader.Read(p)
	if err == nil {
		pt.total += int64(n)
	}
	if pt.total > pt.byteLimit {
		err = fmt.Errorf("too many bytes")
	}
	return n, err
}
Read 'overrides' the underlying io.Reader's Read method.
This is the one that will be called by io.Copy(). We simply
use it to keep track of byte counts and then forward the call.
package download
import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"io/ioutil"
	"net/http"
	"os"
	"os/exec"
	"strings"
	"time"
	"github.com/schollz/logger"
	"github.com/schollz/teoperator/src/utils"
)
var Duct = ""
var ServerName = "alsdkjflkasjdlfajsld"
type PassThru struct {
	io.Reader
	total     int64  
	byteLimit int64
}