|
|
|
@@ -174,7 +174,7 @@ func RecommendFromPromote(url string) ([]string, error) { |
|
|
|
return result, nil |
|
|
|
} |
|
|
|
|
|
|
|
func CheckRepoSizeLimit(repo *models.Repository, fileIds []string) error { |
|
|
|
func CheckPushSizeLimit4Web(repo *models.Repository, fileIds []string) error { |
|
|
|
if err := CheckRepoNumOnceLimit(len(fileIds)); err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
@@ -188,6 +188,16 @@ func CheckRepoSizeLimit(repo *models.Repository, fileIds []string) error { |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
func CheckPushSizeLimit4Http(repo *models.Repository, uploadFileSize int64) error { |
|
|
|
if err := CheckRepoOnceTotalSizeLimit(uploadFileSize); err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
if err := CheckRepoTotalSizeLimit(repo, uploadFileSize); err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
func CheckRepoTotalSizeLimit(repo *models.Repository, uploadFileSize int64) error { |
|
|
|
if repo.Size+uploadFileSize > setting.Repository.RepoMaxSize*1024*1024 { |
|
|
|
return RepoTooLargeErr{} |
|
|
|
@@ -195,6 +205,13 @@ func CheckRepoTotalSizeLimit(repo *models.Repository, uploadFileSize int64) erro |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
func CheckRepoOnceTotalSizeLimit(uploadFileSize int64) error { |
|
|
|
if uploadFileSize > setting.Repository.Upload.TotalMaxSize*1024*1024 { |
|
|
|
return UploadFileTooLargeErr{} |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
func CheckRepoNumOnceLimit(uploadFileNum int) error { |
|
|
|
if uploadFileNum > setting.Repository.Upload.MaxFiles { |
|
|
|
return UploadFileTooMuchErr{} |
|
|
|
@@ -243,6 +260,18 @@ func IsRepoTooLargeErr(err error) bool { |
|
|
|
return ok |
|
|
|
} |
|
|
|
|
|
|
|
type UploadFileTooLargeErr struct { |
|
|
|
} |
|
|
|
|
|
|
|
func (UploadFileTooLargeErr) Error() string { |
|
|
|
return fmt.Sprintf("Upload files can not exceed %d MB at a time", setting.Repository.Upload.TotalMaxSize) |
|
|
|
} |
|
|
|
|
|
|
|
func IsUploadFileTooLargeErr(err error) bool { |
|
|
|
_, ok := err.(UploadFileTooLargeErr) |
|
|
|
return ok |
|
|
|
} |
|
|
|
|
|
|
|
type RepoFileTooLargeErr struct { |
|
|
|
} |
|
|
|
|
|
|
|
|