From 321e257594b059d165f1a3c6a78759ed1726e83a Mon Sep 17 00:00:00 2001 From: Florian Bernd Date: Wed, 4 May 2022 13:26:28 +0200 Subject: [PATCH] Remove `Range` header after `Seek` to origin --- api-get-object.go | 2 +- api-get-options.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/api-get-object.go b/api-get-object.go index 2ce4b260fc..1578804918 100644 --- a/api-get-object.go +++ b/api-get-object.go @@ -197,7 +197,7 @@ func (c *Client) GetObject(ctx context.Context, bucketName, objectName string, o if req.isReadAt { // Range is set with respect to the offset and length of the buffer requested. opts.SetRange(req.Offset, req.Offset+int64(len(req.Buffer))-1) - } else if req.Offset > 0 { // Range is set with respect to the offset. + } else { // Range is set with respect to the offset. opts.SetRange(req.Offset, 0) } httpReader, objectInfo, _, err = c.getObject(ctx, bucketName, objectName, opts) diff --git a/api-get-options.go b/api-get-options.go index 184ef9f868..940ba75de4 100644 --- a/api-get-options.go +++ b/api-get-options.go @@ -113,6 +113,10 @@ func (o *GetObjectOptions) SetModified(modTime time.Time) error { // See https://tools.ietf.org/html/rfc7233#section-3.1 for reference. func (o *GetObjectOptions) SetRange(start, end int64) error { switch { + case start == 0 && end == 0: + if o.headers != nil { + delete(o.headers, "Range") + } case start == 0 && end < 0: // Read last '-end' bytes. `bytes=-N`. o.Set("Range", fmt.Sprintf("bytes=%d", end))