123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package web
- import (
- "backup-x/client"
- "backup-x/entity"
- "net/http"
- "strconv"
- "strings"
- )
- // Save 保存
- func Save(writer http.ResponseWriter, request *http.Request) {
- conf := &entity.Config{}
- // 覆盖以前的配置
- conf.Username = strings.TrimSpace(request.FormValue("Username"))
- conf.Password = request.FormValue("Password")
- if conf.Username == "" || conf.Password == "" {
- writer.Write([]byte("请输入登录用户名/密码"))
- return
- }
- forms := request.PostForm
- for index, projectName := range forms["ProjectName"] {
- saveDays, _ := strconv.Atoi(forms["SaveDays"][index])
- startTime, _ := strconv.Atoi(forms["StartTime"][index])
- period, _ := strconv.Atoi(forms["Period"][index])
- conf.BackupConfig = append(
- conf.BackupConfig,
- entity.BackupConfig{
- ProjectName: projectName,
- Command: forms["Command"][index],
- SaveDays: saveDays,
- StartTime: startTime,
- Period: period,
- },
- )
- }
- // Webhook
- conf.WebhookURL = strings.TrimSpace(request.FormValue("WebhookURL"))
- conf.WebhookRequestBody = strings.TrimSpace(request.FormValue("WebhookRequestBody"))
- // S3
- conf.Endpoint = strings.TrimSpace(request.FormValue("Endpoint"))
- conf.AccessKey = strings.TrimSpace(request.FormValue("AccessKey"))
- conf.SecretKey = strings.TrimSpace(request.FormValue("SecretKey"))
- conf.BucketName = strings.TrimSpace(request.FormValue("BucketName"))
- // 保存到用户目录
- err := conf.SaveConfig()
- // 没有错误
- if err == nil {
- conf.CreateBucketIfNotExist()
- if request.URL.Query().Get("backupNow") == "true" {
- go client.RunOnce()
- }
- // 重新进行循环
- client.StopRunLoop()
- go client.RunLoop()
- }
- // 回写错误信息
- if err == nil {
- writer.Write([]byte("ok"))
- } else {
- writer.Write([]byte(err.Error()))
- }
- }
|