Browse Source

Merge pull request '项目导出文件优化,不再先保存到本地' (#854) from fix-828 into V20211115

Reviewed-on: https://git.openi.org.cn/OpenI/aiforge/pulls/854
Reviewed-by: lewis <747342561@qq.com>
pull/864/head
lewis 3 years ago
parent
commit
389cebadd5
2 changed files with 6 additions and 38 deletions
  1. +0
    -12
      modules/cron/tasks_basic.go
  2. +6
    -26
      routers/api/v1/repo/repo_dashbord.go

+ 0
- 12
modules/cron/tasks_basic.go View File

@@ -11,7 +11,6 @@ import (
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/migrations"
repository_service "code.gitea.io/gitea/modules/repository"
api_repo "code.gitea.io/gitea/routers/api/v1/repo"
"code.gitea.io/gitea/routers/repo"
mirror_service "code.gitea.io/gitea/services/mirror"
)
@@ -186,17 +185,6 @@ func registerHandleSummaryStatistic() {
})
}

func registerHandleClearRepoStatisticFile() {
RegisterTaskFatal("handle_repo_clear_statistic_file", &BaseConfig{
Enabled: true,
RunAtStart: false,
Schedule: "@daily",
}, func(ctx context.Context, _ *models.User, _ Config) error {
api_repo.ClearUnusedStatisticsFile()
return nil
})
}

func initBasicTasks() {
registerUpdateMirrorTask()
registerRepoHealthCheck()


+ 6
- 26
routers/api/v1/repo/repo_dashbord.go View File

@@ -2,7 +2,6 @@ package repo

import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"os"
@@ -174,7 +173,7 @@ func ServeAllProjectsPeriodStatisticsFile(ctx *context.Context) {
return
}
var projectAnalysis = ctx.Tr("repo.repo_stat_inspect")
fileName, frontName := getFileName(ctx, beginTime, endTime, projectAnalysis)
fileName := getFileName(ctx, beginTime, endTime, projectAnalysis)

if err := os.MkdirAll(setting.RadarMap.Path, os.ModePerm); err != nil {
ctx.Error(http.StatusBadRequest, fmt.Errorf("Failed to create dir %s: %v", setting.AvatarUploadPath, err).Error())
@@ -207,17 +206,14 @@ func ServeAllProjectsPeriodStatisticsFile(ctx *context.Context) {
f.SetActiveSheet(index)
f.DeleteSheet("Sheet1")

if err := f.SaveAs(fileName); err != nil {
log.Error("Can not generate file.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("repo.generate_statistic_file_error"))
return
}
ctx.Resp.Header().Set("Content-Disposition", "attachment; filename="+url.QueryEscape(fileName))
ctx.Resp.Header().Set("Content-Type", "application/octet-stream")

ctx.ServeFile(fileName, url.QueryEscape(frontName))
f.WriteTo(ctx.Resp)

}

func getFileName(ctx *context.Context, beginTime time.Time, endTime time.Time, projectAnalysis string) (string, string) {
func getFileName(ctx *context.Context, beginTime time.Time, endTime time.Time, projectAnalysis string) string {
baseName := setting.RadarMap.Path + "/" + projectAnalysis + "_"

if ctx.QueryTrim("q") != "" {
@@ -229,23 +225,7 @@ func getFileName(ctx *context.Context, beginTime time.Time, endTime time.Time, p
baseName = baseName + beginTime.AddDate(0, 0, -1).Format(EXCEL_DATE_FORMAT) + "_" + endTime.AddDate(0, 0, -1).Format(EXCEL_DATE_FORMAT)
}
frontName := baseName + ".xlsx"
localName := baseName + "_" + strconv.FormatInt(time.Now().Unix(), 10) + ".xlsx"
return localName, path.Base(frontName)
}

func ClearUnusedStatisticsFile() {
fileInfos, err := ioutil.ReadDir(setting.RadarMap.Path)
if err != nil {
log.Warn("can not read dir: "+setting.RadarMap.Path, err)
return
}

for _, fileInfo := range fileInfos {
if !fileInfo.IsDir() && fileInfo.ModTime().Before(time.Now().AddDate(0, 0, -1)) {
os.Remove(path.Join(setting.RadarMap.Path, fileInfo.Name()))
}
}

return path.Base(frontName)
}

func allProjectsPeroidHeader(ctx *context.Context) map[string]string {


Loading…
Cancel
Save