소스 검색

When handling errors in storageHandler check underlying error (#13178)

Unfortunately there was a mistake in #13164 which fails to handle
os.PathError wrapping an os.ErrNotExist

Signed-off-by: Andrew Thornton <art27@cantab.net>

Co-authored-by: techknowlogick <techknowlogick@gitea.io>
tags/v1.15.0-dev
zeripath 3 년 전
부모
커밋
25b7766673
No account linked to committer's email address
2개의 변경된 파일4개의 추가작업 그리고 3개의 파일을 삭제
  1. 1
    1
      modules/storage/minio.go
  2. 3
    2
      routers/routes/routes.go

+ 1
- 1
modules/storage/minio.go 파일 보기

@@ -32,7 +32,7 @@ type minioObject struct {
func (m *minioObject) Stat() (os.FileInfo, error) {
oi, err := m.Object.Stat()
if err != nil {
return nil, err
return nil, convertMinioErr(err)
}

return &minioFileInfo{oi}, nil

+ 3
- 2
routers/routes/routes.go 파일 보기

@@ -7,6 +7,7 @@ package routes
import (
"bytes"
"encoding/gob"
"errors"
"fmt"
"io"
"net/http"
@@ -127,7 +128,7 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor
rPath := strings.TrimPrefix(req.RequestURI, "/"+prefix)
u, err := objStore.URL(rPath, path.Base(rPath))
if err != nil {
if err == os.ErrNotExist {
if os.IsNotExist(err) || errors.Is(err, os.ErrNotExist) {
log.Warn("Unable to find %s %s", prefix, rPath)
ctx.Error(404, "file not found")
return
@@ -160,7 +161,7 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor
//If we have matched and access to release or issue
fr, err := objStore.Open(rPath)
if err != nil {
if err == os.ErrNotExist {
if os.IsNotExist(err) || errors.Is(err, os.ErrNotExist) {
log.Warn("Unable to find %s %s", prefix, rPath)
ctx.Error(404, "file not found")
return

Loading…
취소
저장