cleanupOldFiles: Diese Funktion durchsucht das Upload-Verzeichnis und löscht Dateien, die älter als 48 Stunden sind.
startCleanupProcess: Ein Hintergrundprozess, der cleanupOldFiles jede Stunde ausführt, um alte Dateien zu entfernen. fileLifetime: Die Lebensdauer der Dateien ist auf 48 Stunden gesetzt. Dateien, die älter sind, werden gelöscht.
This commit is contained in:
parent
8bcfea0395
commit
041922ea6d
1 changed files with 42 additions and 0 deletions
42
go/main.go
42
go/main.go
|
@ -23,7 +23,16 @@ var (
|
||||||
uploadInterval = 10 * time.Second
|
uploadInterval = 10 * time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
uploadDir = "./uploads"
|
||||||
|
cleanupInterval = 1 * time.Hour
|
||||||
|
fileLifetime = 48 * time.Hour
|
||||||
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
// Starten Sie den Hintergrundprozess zum Löschen alter Dateien
|
||||||
|
go startCleanupProcess()
|
||||||
|
|
||||||
http.HandleFunc("/", homeHandler)
|
http.HandleFunc("/", homeHandler)
|
||||||
http.HandleFunc("/upload", uploadHandler)
|
http.HandleFunc("/upload", uploadHandler)
|
||||||
http.HandleFunc("/image/", imageHandler)
|
http.HandleFunc("/image/", imageHandler)
|
||||||
|
@ -36,6 +45,39 @@ func main() {
|
||||||
http.ListenAndServe(":8080", nil)
|
http.ListenAndServe(":8080", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func startCleanupProcess() {
|
||||||
|
ticker := time.NewTicker(cleanupInterval)
|
||||||
|
defer ticker.Stop()
|
||||||
|
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ticker.C:
|
||||||
|
cleanupOldFiles()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func cleanupOldFiles() {
|
||||||
|
now := time.Now()
|
||||||
|
err := filepath.Walk(uploadDir, func(path string, info os.FileInfo, err error) error {
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !info.IsDir() && now.Sub(info.ModTime()) > fileLifetime {
|
||||||
|
err := os.Remove(path)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Fehler beim Löschen der Datei %s: %v", path, err)
|
||||||
|
} else {
|
||||||
|
log.Printf("Datei gelöscht: %s", path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Fehler beim Durchsuchen des Verzeichnisses: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func homeHandler(w http.ResponseWriter, r *http.Request) {
|
func homeHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
// Setzen der Content Security Policy
|
// Setzen der Content Security Policy
|
||||||
w.Header().Set("Content-Security-Policy", "default-src 'self'; script-src 'self'; object-src 'none';")
|
w.Header().Set("Content-Security-Policy", "default-src 'self'; script-src 'self'; object-src 'none';")
|
||||||
|
|
Loading…
Reference in a new issue