working commit

This commit is contained in:
2026-02-06 09:27:45 +02:00
parent 4f01100473
commit 88bfe00d61
11 changed files with 246 additions and 302 deletions
+17 -10
View File
@@ -29,9 +29,12 @@ func (hand *Handler) BlobExists(rctx *router.Context) {
res, code, err := hand.oper.BlobExists(ctx, params)
if err != nil {
hand.logg.Errorf("BlobExist error: %v", err)
} else if res.Exists {
}
if code == http.StatusOK {
rctx.SetHeader("Docker-Content-Digest", res.DockerContentDigest)
rctx.SetHeader("Content-Length", res.ContentLength)
rctx.SetHeader("Content-Type", res.ContentType)
}
rctx.SetStatus(code)
}
@@ -139,18 +142,22 @@ func (hand *Handler) GetBlob(rctx *router.Context) {
hand.logg.Errorf("GetBlob error: %v", err)
}
rctx.SetHeader("Content-Length", res.ContentLength)
rctx.SetHeader("Content-Type", res.ContentType)
rctx.SetHeader("Docker-Content-Digest", res.DockerContentDigest)
rctx.SetStatus(code)
if code == http.StatusOK {
rctx.SetHeader("Content-Length", res.ContentLength)
rctx.SetHeader("Content-Type", res.ContentType)
rctx.SetHeader("Docker-Content-Digest", res.DockerContentDigest)
rctx.SetStatus(code)
defer res.ReadCloser.Close()
_, err = io.Copy(rctx.Writer, res.ReadCloser)
if err != nil {
hand.logg.Errorf("GetFile error: %v", err)
rctx.SetStatus(http.StatusInternalServerError)
defer res.ReadCloser.Close()
_, err = io.Copy(rctx.Writer, res.ReadCloser)
if err != nil {
hand.logg.Errorf("GetFile error: %v", err)
rctx.SetStatus(http.StatusInternalServerError)
return
}
return
}
rctx.SetStatus(code)
}
// DELETE /v2/<name>/blobs/<digest> 202 404/405
+1 -2
View File
@@ -110,6 +110,5 @@ func (hand *Handler) ListFiles(rctx *router.Context) {
rctx.SetStatus(code)
return
}
rctx.SetStatus(code)
rctx.SendJSON(res)
rctx.SendJSON(code, res)
}
+42 -9
View File
@@ -1,7 +1,8 @@
package handler
import (
//"mstore/app/descr"
"net/http"
"mstore/app/operator"
"mstore/app/router"
)
@@ -18,7 +19,7 @@ func (hand *Handler) ManifestExists(rctx *router.Context) {
res, code, err := hand.oper.ManifestExists(ctx, params)
if err != nil {
hand.logg.Errorf("ManifestExist error: %v", err)
} else if res.Exists {
} else if code == http.StatusOK {
rctx.SetHeader("Content-Length", res.ContentLength)
rctx.SetHeader("Content-Type", res.ContentType)
rctx.SetHeader("Docker-Content-Digest", res.DockerContentDigest)
@@ -70,13 +71,14 @@ func (hand *Handler) GetManifest(rctx *router.Context) {
rctx.SetStatus(code)
return
}
rctx.SetHeader("Content-Length", res.ContentLength)
rctx.SetHeader("Content-Type", res.ContentType)
rctx.SetHeader("Docker-Content-Digest", res.DockerContentDigest)
if code == http.StatusOK {
rctx.SetHeader("Content-Length", res.ContentLength)
rctx.SetHeader("Content-Type", res.ContentType)
rctx.SetHeader("Docker-Content-Digest", res.DockerContentDigest)
rctx.SendBytes(code, []byte(res.Payload))
return
}
rctx.SetStatus(code)
rctx.SendBytes([]byte(res.Payload))
}
// DELETE /v2/<name>/manifests/<reference> 200 404
@@ -89,9 +91,40 @@ func (hand *Handler) DeleteManifest(rctx *router.Context) {
Reference: reference,
}
ctx := rctx.GetContext()
res, code, err := hand.oper.DeleteManifest(ctx, params)
_, code, err := hand.oper.DeleteManifest(ctx, params)
if err != nil {
hand.logg.Errorf("DeleteManifest error: %v", err)
}
rctx.SetStatus(code)
}
// GET /v2/<name>/referrers/<digest> 200 404/400
// GET /v2/<name>/referrers/<digest>?artifactType=<artifactType> 200 404/400
func (hand *Handler) GetReferer(rctx *router.Context) {
name, _ := rctx.GetSubpath("name")
digest, _ := rctx.GetSubpath("digest")
params := &operator.GetRefererParams{
Name: name,
Digest: digest,
}
res, code, err := hand.oper.GetReferer(rctx.Ctx, params)
if err != nil {
hand.logg.Errorf("GetReferer error: %v", err)
}
rctx.SendText(code, res.Reference)
}
// GET /v2/<name>/tags/list 200 404
// GET /v2/<name>/tags/list?n=<integer>&last=<integer>
func (hand *Handler) GetTags(rctx *router.Context) {
name, _ := rctx.GetSubpath("name")
params := &operator.GetTagsParams{
Name: name,
}
ctx := rctx.GetContext()
res, code, err := hand.oper.GetTags(ctx, params)
if err != nil {
hand.logg.Errorf("GetTags error: %v", err)
}
rctx.SendJSON(code, res.TagDescr)
}
+4 -2
View File
@@ -1,6 +1,8 @@
package handler
import (
"net/http"
"mstore/app/router"
)
@@ -15,7 +17,7 @@ func (hand *Handler) SendResult(rctx *router.Context, result any) {
Error: false,
Result: result,
}
rctx.SendJSON(response)
rctx.SendJSON(http.StatusOK, response)
}
func (hand *Handler) SendError(rctx *router.Context, err error) {
@@ -23,5 +25,5 @@ func (hand *Handler) SendError(rctx *router.Context, err error) {
Error: true,
Message: err.Error(),
}
rctx.SendJSON(response)
rctx.SendJSON(http.StatusOK, response)
}