@@ -210,7 +210,7 @@ func (o *ObjectHandle) NewRangeReader(ctx context.Context, offset, length int64)
|
210 | 210 | gen = gen64 |
211 | 211 | } |
212 | 212 | return nil |
213 | | - }, o.retry, true, setRetryHeaderHTTP(nil)) |
| 213 | + }, o.retry, true, setRetryHeaderHTTP(&readerRequestWrapper{req})) |
214 | 214 | if err != nil { |
215 | 215 | return nil, err |
216 | 216 | } |
@@ -356,6 +356,16 @@ func setConditionsHeaders(headers http.Header, conds *Conditions) error {
|
356 | 356 | return nil |
357 | 357 | } |
358 | 358 | |
| 359 | +// Wrap a request to look similar to an apiary library request, in order to |
| 360 | +// be used by run(). |
| 361 | +type readerRequestWrapper struct { |
| 362 | +req *http.Request |
| 363 | +} |
| 364 | + |
| 365 | +func (w *readerRequestWrapper) Header() http.Header { |
| 366 | +return w.req.Header |
| 367 | +} |
| 368 | + |
359 | 369 | var emptyBody = ioutil.NopCloser(strings.NewReader("")) |
360 | 370 | |
361 | 371 | // Reader reads a Cloud Storage object. |
@@ -492,7 +502,7 @@ func (o *ObjectHandle) newRangeReaderWithGRPC(ctx context.Context, offset, lengt
|
492 | 502 | msg, err = stream.Recv() |
493 | 503 | |
494 | 504 | return err |
495 | | - }, o.retry, true, setRetryHeaderHTTP(nil)) |
| 505 | + }, o.retry, true, setRetryHeaderGRPC(ctx)) |
496 | 506 | if err != nil { |
497 | 507 | // Close the stream context we just created to ensure we don't leak |
498 | 508 | // resources. |
|