Merge pull request #1303 from BrianBland/fixDisabledStorageRedirects

Serve blobs when a storage driver supports redirects but are disabled
This commit is contained in:
Brian Bland 2015-12-29 13:28:45 -08:00
commit 2394deaedc

View file

@ -34,18 +34,22 @@ func (bs *blobServer) ServeBlob(ctx context.Context, w http.ResponseWriter, r *h
return err
}
if bs.redirect {
redirectURL, err := bs.driver.URLFor(ctx, path, map[string]interface{}{"method": r.Method})
switch err.(type) {
case nil:
if bs.redirect {
// Redirect to storage URL.
http.Redirect(w, r, redirectURL, http.StatusTemporaryRedirect)
return err
}
case driver.ErrUnsupportedMethod:
// Fallback to serving the content directly.
default:
// Some unexpected error.
return err
}
}
br, err := newFileReader(ctx, bs.driver, path, desc.Size)
if err != nil {
return err
@ -71,8 +75,4 @@ func (bs *blobServer) ServeBlob(ctx context.Context, w http.ResponseWriter, r *h
http.ServeContent(w, r, desc.Digest.String(), time.Time{}, br)
return nil
}
// Some unexpected error.
return err
}