From bca9664c864bb3be7364a98cc0ee266f63b82742 Mon Sep 17 00:00:00 2001 From: "453530270@qq.com" Date: Thu, 27 Jun 2024 10:15:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=9B=B8=E5=90=8C=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=97=B6=E5=80=99=E5=A4=87=E4=BB=BD=E5=8E=9F=E6=9C=89?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fsv2/handler/handler.go | 7 +++++++ fsv2/util/util.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/fsv2/handler/handler.go b/fsv2/handler/handler.go index d82a721..ccad2ab 100644 --- a/fsv2/handler/handler.go +++ b/fsv2/handler/handler.go @@ -7,6 +7,7 @@ import ( "io" "mime" "strings" + "time" "net/http" "os" @@ -109,6 +110,12 @@ func ReceiveHandler(w http.ResponseWriter, r *http.Request) { http.Error(w, err.Error(), http.StatusInternalServerError) return } + // 检查文件是否存在 + if util.IsFileExist(filename) { + // 文件重命名 + dstfname := filename + "_backup_" + time.Now().Format("20060102150405") + os.Rename(filename, dstfname) + } out, err := os.Create(nfname) if err != nil { diff --git a/fsv2/util/util.go b/fsv2/util/util.go index c60db3e..191f9d3 100644 --- a/fsv2/util/util.go +++ b/fsv2/util/util.go @@ -172,6 +172,36 @@ func Base64dec(bsstr string) string { return string(dedc) } +// 文件备份 +func Filebackup(src, dst string) error { + in, err := os.Open(src) + if err != nil { + return err + } + defer in.Close() + + out, err := os.Create(dst) + if err != nil { + return err + } + defer out.Close() + + _, err = io.Copy(out, in) + if err != nil { + return err + } + + return out.Sync() +} + +// 判断文件是否存在 +func IsFileExist(filename string) bool { + if _, err := os.Stat(filename); err == nil { + return true + } + return false +} + // package main // import (