Dump files

This commit is contained in:
kolaente 2020-06-19 22:33:22 +02:00
parent 2094431d49
commit 0ba3d1fd05
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 35 additions and 2 deletions

View File

@ -26,6 +26,7 @@ import (
"github.com/spf13/viper"
"io"
"os"
"strconv"
"time"
)
@ -80,7 +81,20 @@ var dumpCmd = &cobra.Command{
log.Info("Dumped database")
// Files
files.Dump()
files, err := files.Dump()
if err != nil {
log.Criticalf("Error saving files: %s", err)
}
for fid, fcontent := range files {
err = writeBytesToZip("files/"+strconv.FormatInt(fid, 10), fcontent, dumpWriter)
if err != nil {
log.Criticalf("Error writing file %d: %s", fid, err)
}
}
log.Infof("Dumped files")
log.Info("Done creating dump")
log.Infof("Dump file saved at %s", filename)
},
}

View File

@ -16,9 +16,28 @@
package files
import "bytes"
// Dump dumps all saved files
// This only includes the raw files, no db entries.
func Dump() (err error) {
func Dump() (allFiles map[int64][]byte, err error) {
files := []*File{}
err = x.Find(&files)
if err != nil {
return
}
allFiles = make(map[int64][]byte, len(files))
for _, file := range files {
if err := file.LoadFileByID(); err != nil {
return nil, err
}
var buf bytes.Buffer
if _, err := buf.ReadFrom(file.File); err != nil {
return nil, err
}
allFiles[file.ID] = buf.Bytes()
}
return
}