X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/66088cabf30c5291ad8894e7009d9c9af466c158..3583e494ed815632bbaa2582fd0a49110a21123b:/sdk/go/keepclient/support.go diff --git a/sdk/go/keepclient/support.go b/sdk/go/keepclient/support.go index 8d299815b2..6acaf64baa 100644 --- a/sdk/go/keepclient/support.go +++ b/sdk/go/keepclient/support.go @@ -127,7 +127,7 @@ func (kc *KeepClient) uploadToKeepServer(host string, hash string, classesTodo [ } } -func (kc *KeepClient) BlockWrite(ctx context.Context, req arvados.BlockWriteOptions) (arvados.BlockWriteResponse, error) { +func (kc *KeepClient) httpBlockWrite(ctx context.Context, req arvados.BlockWriteOptions) (arvados.BlockWriteResponse, error) { var resp arvados.BlockWriteResponse var getReader func() io.Reader if req.Data == nil && req.Reader == nil { @@ -149,8 +149,12 @@ func (kc *KeepClient) BlockWrite(ctx context.Context, req arvados.BlockWriteOpti getReader = func() io.Reader { return bytes.NewReader(req.Data[:req.DataSize]) } } else { buf := asyncbuf.NewBuffer(make([]byte, 0, req.DataSize)) + reader := req.Reader + if req.Hash != "" { + reader = HashCheckingReader{req.Reader, md5.New(), req.Hash} + } go func() { - _, err := io.Copy(buf, HashCheckingReader{req.Reader, md5.New(), req.Hash}) + _, err := io.Copy(buf, reader) buf.CloseWithError(err) }() getReader = buf.NewReader