2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-26 14:56:29 +00:00

rest: Really set Content-Length HTTP header

This commit is contained in:
Alexander Neumann 2018-03-08 22:14:12 +01:00
parent ab5ef600a2
commit fcc9ce81ba

View File

@ -9,7 +9,6 @@ import (
"net/http" "net/http"
"net/url" "net/url"
"path" "path"
"strconv"
"strings" "strings"
"golang.org/x/net/context/ctxhttp" "golang.org/x/net/context/ctxhttp"
@ -119,10 +118,13 @@ func (b *restBackend) Save(ctx context.Context, h restic.Handle, rd restic.Rewin
if err != nil { if err != nil {
return errors.Wrap(err, "NewRequest") return errors.Wrap(err, "NewRequest")
} }
req.Header.Set("Content-Length", strconv.FormatInt(rd.Length(), 10))
req.Header.Set("Content-Type", "application/octet-stream") req.Header.Set("Content-Type", "application/octet-stream")
req.Header.Set("Accept", contentTypeV2) req.Header.Set("Accept", contentTypeV2)
// explicitly set the content length, this prevents chunked encoding and
// let's the server know what's coming.
req.ContentLength = rd.Length()
b.sem.GetToken() b.sem.GetToken()
resp, err := ctxhttp.Do(ctx, b.client, req) resp, err := ctxhttp.Do(ctx, b.client, req)
b.sem.ReleaseToken() b.sem.ReleaseToken()