对go语言的http包作一些封装,把http函数调用转换成读写流的形式。用于接口服务调用数据服务实现数据传输。
type PutStream struct {
writer *io.PipeWriter
c chan error //用于把一个协程传输数据过程中的错误传回主线程
}
func NewPutStream(server, object string) *PutStream {
reader, writer := io.Pipe() //一对管道 写入write的内容可以从reader读出来
c := make(chan error)
//管道的读写是阻塞 因此需要开启一个协程来调用client.Do(request)方法
go func() {
request, _ := http.NewRequest("PUT", "http://"+server+"/objects/"+object, reader)
client := http.Client