diff options
author | earl-warren <earl-warren@noreply.code.forgejo.org> | 2024-11-22 07:57:18 +0100 |
---|---|---|
committer | earl-warren <earl-warren@noreply.code.forgejo.org> | 2024-11-22 07:57:18 +0100 |
commit | 3e7dfc6785637dcff4c1a48290d7f4da2f1ceef6 (patch) | |
tree | 9de286fdb2da02055a1606cd1710480e2ec11150 | |
parent | Merge pull request 'fix: log skipped job and step result as info instead of d... (diff) | |
parent | fix(cache-server): use consistent uint64 (diff) | |
download | forgejo-act-3e7dfc6785637dcff4c1a48290d7f4da2f1ceef6.tar.xz forgejo-act-3e7dfc6785637dcff4c1a48290d7f4da2f1ceef6.zip |
Merge pull request 'fix(cache-server): use consistent uint64' (#68) from fix/cache/use-uint64 into main
Reviewed-on: https://code.forgejo.org/forgejo/act/pulls/68
Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org>
-rw-r--r-- | pkg/artifactcache/handler.go | 16 | ||||
-rw-r--r-- | pkg/artifactcache/storage.go | 4 |
2 files changed, 10 insertions, 10 deletions
diff --git a/pkg/artifactcache/handler.go b/pkg/artifactcache/handler.go index 065c7dd..252564f 100644 --- a/pkg/artifactcache/handler.go +++ b/pkg/artifactcache/handler.go @@ -227,7 +227,7 @@ func (h *Handler) reserve(w http.ResponseWriter, r *http.Request, _ httprouter.P // PATCH /_apis/artifactcache/caches/:id func (h *Handler) upload(w http.ResponseWriter, r *http.Request, params httprouter.Params) { - id, err := strconv.ParseInt(params.ByName("id"), 10, 64) + id, err := strconv.ParseUint(params.ByName("id"), 10, 64) if err != nil { h.responseJSON(w, r, 400, err) return @@ -268,7 +268,7 @@ func (h *Handler) upload(w http.ResponseWriter, r *http.Request, params httprout // POST /_apis/artifactcache/caches/:id func (h *Handler) commit(w http.ResponseWriter, r *http.Request, params httprouter.Params) { - id, err := strconv.ParseInt(params.ByName("id"), 10, 64) + id, err := strconv.ParseUint(params.ByName("id"), 10, 64) if err != nil { h.responseJSON(w, r, 400, err) return @@ -323,13 +323,13 @@ func (h *Handler) commit(w http.ResponseWriter, r *http.Request, params httprout // GET /_apis/artifactcache/artifacts/:id func (h *Handler) get(w http.ResponseWriter, r *http.Request, params httprouter.Params) { - id, err := strconv.ParseInt(params.ByName("id"), 10, 64) + id, err := strconv.ParseUint(params.ByName("id"), 10, 64) if err != nil { h.responseJSON(w, r, 400, err) return } h.useCache(id) - h.storage.Serve(w, r, uint64(id)) + h.storage.Serve(w, r, id) } // POST /_apis/artifactcache/clean @@ -394,7 +394,7 @@ func insertCache(db *bolthold.Store, cache *Cache) error { return nil } -func (h *Handler) useCache(id int64) { +func (h *Handler) useCache(id uint64) { db, err := h.openDB() if err != nil { return @@ -539,16 +539,16 @@ func (h *Handler) responseJSON(w http.ResponseWriter, r *http.Request, code int, _, _ = w.Write(data) } -func parseContentRange(s string) (int64, int64, error) { +func parseContentRange(s string) (uint64, uint64, error) { // support the format like "bytes 11-22/*" only s, _, _ = strings.Cut(strings.TrimPrefix(s, "bytes "), "/") s1, s2, _ := strings.Cut(s, "-") - start, err := strconv.ParseInt(s1, 10, 64) + start, err := strconv.ParseUint(s1, 10, 64) if err != nil { return 0, 0, fmt.Errorf("parse %q: %w", s, err) } - stop, err := strconv.ParseInt(s2, 10, 64) + stop, err := strconv.ParseUint(s2, 10, 64) if err != nil { return 0, 0, fmt.Errorf("parse %q: %w", s, err) } diff --git a/pkg/artifactcache/storage.go b/pkg/artifactcache/storage.go index 9a2609a..0cadfa6 100644 --- a/pkg/artifactcache/storage.go +++ b/pkg/artifactcache/storage.go @@ -31,7 +31,7 @@ func (s *Storage) Exist(id uint64) (bool, error) { return true, nil } -func (s *Storage) Write(id uint64, offset int64, reader io.Reader) error { +func (s *Storage) Write(id uint64, offset uint64, reader io.Reader) error { name := s.tempName(id, offset) if err := os.MkdirAll(filepath.Dir(name), 0o755); err != nil { return err @@ -110,7 +110,7 @@ func (s *Storage) tempDir(id uint64) string { return filepath.Join(s.rootDir, "tmp", fmt.Sprint(id)) } -func (s *Storage) tempName(id uint64, offset int64) string { +func (s *Storage) tempName(id uint64, offset uint64) string { return filepath.Join(s.tempDir(id), fmt.Sprintf("%016x", offset)) } |