MCPcopy
hub / github.com/grafana/tempo / readRange

Method readRange

tempodb/backend/s3/s3.go:666–689  ·  view source on GitHub ↗
(ctx context.Context, objName string, offset int64, buffer []byte)

Source from the content-addressed store, hash-verified

664}
665
666func (rw *readerWriter) readRange(ctx context.Context, objName string, offset int64, buffer []byte) error {
667 options := getObjectOptions(rw)
668 err := options.SetRange(offset, offset+int64(len(buffer)))
669 if err != nil {
670 return fmt.Errorf("error setting headers for range read in s3: %w", err)
671 }
672 reader, _, _, err := rw.hedgedCore.GetObject(ctx, rw.cfg.Bucket, objName, options)
673 if err != nil {
674 return fmt.Errorf("error in range read from s3 backend, bucket: %s, objName: %s: %w", rw.cfg.Bucket, objName, err)
675 }
676 defer reader.Close()
677
678 /* bytes read == len(buffer) if and only if err == nil */
679 _, err = io.ReadFull(reader, buffer)
680
681 if err == nil {
682 /* read EOF so connection can be reused */
683 var dummy [1]byte
684 _, _ = reader.Read(dummy[:])
685 return nil
686 }
687
688 return err
689}
690
691func fetchCreds(cfg *Config) (*credentials.Credentials, error) {
692 wrapCredentialsProvider := func(p credentials.Provider) credentials.Provider {

Callers 1

ReadRangeMethod · 0.95

Calls 3

getObjectOptionsFunction · 0.85
CloseMethod · 0.65
ReadMethod · 0.65

Tested by

no test coverage detected