mirror of
https://code.tvl.fyi/depot.git:/tools/nixery.git
synced 2025-03-15 06:01:51 +00:00
refactor(server): Pass HTTP request to storage.ServeLayer
The request object is required for some serving methods (e.g. the filesystem one).
This commit is contained in:
parent
3da2377db7
commit
175d36d416
|
@ -411,7 +411,7 @@ func uploadHashLayer(ctx context.Context, s *State, key string, lw layerWriter)
|
||||||
"layer": key,
|
"layer": key,
|
||||||
"sha256": sha256sum,
|
"sha256": sha256sum,
|
||||||
"size": size,
|
"size": size,
|
||||||
}).Info("uploaded layer")
|
}).Info("created and persisted layer")
|
||||||
|
|
||||||
entry := manifest.Entry{
|
entry := manifest.Entry{
|
||||||
Digest: "sha256:" + sha256sum,
|
Digest: "sha256:" + sha256sum,
|
||||||
|
|
|
@ -175,7 +175,7 @@ func (h *registryHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
if len(layerMatches) == 3 {
|
if len(layerMatches) == 3 {
|
||||||
digest := layerMatches[2]
|
digest := layerMatches[2]
|
||||||
storage := h.state.Storage
|
storage := h.state.Storage
|
||||||
err := storage.ServeLayer(digest, w)
|
err := storage.ServeLayer(digest, r, w)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.WithError(err).WithFields(log.Fields{
|
log.WithError(err).WithFields(log.Fields{
|
||||||
"layer": digest,
|
"layer": digest,
|
||||||
|
|
|
@ -139,7 +139,7 @@ func (b *GCSBackend) Move(old, new string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *GCSBackend) ServeLayer(digest string, w http.ResponseWriter) error {
|
func (b *GCSBackend) ServeLayer(digest string, r *http.Request, w http.ResponseWriter) error {
|
||||||
url, err := b.constructLayerUrl(digest)
|
url, err := b.constructLayerUrl(digest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.WithError(err).WithFields(log.Fields{
|
log.WithError(err).WithFields(log.Fields{
|
||||||
|
@ -150,6 +150,8 @@ func (b *GCSBackend) ServeLayer(digest string, w http.ResponseWriter) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.WithField("layer", digest).Info("redirecting layer request to GCS bucket")
|
||||||
|
|
||||||
w.Header().Set("Location", url)
|
w.Header().Set("Location", url)
|
||||||
w.WriteHeader(303)
|
w.WriteHeader(303)
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -30,5 +30,5 @@ type Backend interface {
|
||||||
|
|
||||||
// Serve provides a handler function to serve HTTP requests
|
// Serve provides a handler function to serve HTTP requests
|
||||||
// for layers in the storage backend.
|
// for layers in the storage backend.
|
||||||
ServeLayer(digest string, w http.ResponseWriter) error
|
ServeLayer(digest string, r *http.Request, w http.ResponseWriter) error
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user