package oss import ( "fmt" "jygit.jydev.jianyu360.cn/BaseService/ossClient/constant" "jygit.jydev.jianyu360.cn/BaseService/ossClient/entity" "jygit.jydev.jianyu360.cn/BaseService/ossClient/pb" "log" ) type myWriter struct { resp pb.Service_DownloadServer } func (m *myWriter) Write(b []byte) (n int, err error) { n = len(b) err = m.resp.Send(&pb.Response{Data: b}) return } type Grpc struct { pb.UnimplementedServiceServer } func (g *Grpc) Download(req *pb.DownloadRequest, resp pb.Service_DownloadServer) error { if err := checkArgs(&entity.Args{BucketID: req.BucketID, ObjectName: req.ObjectName}); err != nil { log.Println("grpc方式", fmt.Sprintf(constant.DownloadFail, err)) return err } log.Println("grpc方式下载", req.BucketID, req.ObjectName) return Download(&myWriter{resp: resp}, 0, req.BucketID, req.ObjectName) } func (g *Grpc) GetBidDetail(req *pb.DownloadRequest, resp pb.Service_DownloadServer) error { if err := checkArgs(&entity.Args{BucketID: req.BucketID, ObjectName: req.ObjectName}); err != nil { log.Println("grpc方式获取正文", err) return err } log.Println("grpc方式获取正文", req.BucketID, req.ObjectName) GetBidDetail(&myWriter{resp: resp}, req.BucketID, req.ObjectName) return nil }