working commit
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"io"
|
||||
"net/http"
|
||||
|
||||
"mstore/app/operator"
|
||||
"mstore/app/router"
|
||||
|
||||
@@ -125,3 +128,52 @@ func (hand *Handler) PutUpload(rctx *router.Context) {
|
||||
rctx.SetHeader("Location", res.Location)
|
||||
rctx.SetStatus(code)
|
||||
}
|
||||
|
||||
// GET /v2/<name>/blobs/<digest> 200 404
|
||||
func (hand *Handler) GetBlob(rctx *router.Context) {
|
||||
|
||||
name, _ := rctx.GetSubpath("name")
|
||||
digest, _ := rctx.GetSubpath("digest")
|
||||
|
||||
params := &operator.GetBlobParams{
|
||||
Name: name,
|
||||
Digest: digest,
|
||||
}
|
||||
ctx := rctx.GetContext()
|
||||
res, code, err := hand.oper.GetBlob(ctx, params)
|
||||
if err != nil {
|
||||
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)
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
// DELETE /v2/<name>/blobs/<digest> 202 404/405
|
||||
func (hand *Handler) DeleteBlob(rctx *router.Context) {
|
||||
|
||||
name, _ := rctx.GetSubpath("name")
|
||||
digest, _ := rctx.GetSubpath("digest")
|
||||
|
||||
params := &operator.DeleteBlobParams{
|
||||
Name: name,
|
||||
Digest: digest,
|
||||
}
|
||||
ctx := rctx.GetContext()
|
||||
_, code, err := hand.oper.DeleteBlob(ctx, params)
|
||||
if err != nil {
|
||||
hand.logg.Errorf("DeleteBlob error: %v", err)
|
||||
}
|
||||
|
||||
rctx.SetStatus(code)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user