diff --git a/lib/files.go b/lib/files.go index fdbffe3..180e92d 100644 --- a/lib/files.go +++ b/lib/files.go @@ -513,7 +513,9 @@ func loadTerminalUnixFSElementWithRecursiveDirectories(ctx context.Context, c ci } from := int64(0) + var byteRange gateway.DagByteRange if params.Range != nil { + byteRange = *params.Range from = params.Range.From } _, err = f.Seek(from, io.SeekStart) @@ -521,7 +523,7 @@ func loadTerminalUnixFSElementWithRecursiveDirectories(ctx context.Context, c ci return nil, fmt.Errorf("unable to get reset UnixFS file reader: %w", err) } - return &backpressuredFile{ctx: ctx, fileCid: c, size: fileSize, f: f, getLsys: getLsys, closed: make(chan error)}, nil + return &backpressuredFile{ctx: ctx, fileCid: c, byteRange: byteRange, size: fileSize, f: f, getLsys: getLsys, closed: make(chan error)}, nil default: return nil, fmt.Errorf("unknown UnixFS field type") } diff --git a/lib/graph_gateway.go b/lib/graph_gateway.go index 4911d05..4d5331b 100644 --- a/lib/graph_gateway.go +++ b/lib/graph_gateway.go @@ -565,15 +565,17 @@ func loadTerminalEntity(ctx context.Context, c cid.Cid, blk blocks.Block, lsys * } from := int64(0) + var byteRange gateway.DagByteRange if params.Range != nil { from = params.Range.From + byteRange = *params.Range } _, err = f.Seek(from, io.SeekStart) if err != nil { return nil, fmt.Errorf("unable to get reset UnixFS file reader: %w", err) } - return &backpressuredFile{ctx: ctx, fileCid: c, size: fileSize, f: f, getLsys: getLsys, closed: make(chan error)}, nil + return &backpressuredFile{ctx: ctx, fileCid: c, byteRange: byteRange, size: fileSize, f: f, getLsys: getLsys, closed: make(chan error)}, nil default: return nil, fmt.Errorf("unknown UnixFS field type") }