Working download !!!
parent
4985b3aea3
commit
44de8bc448
@ -0,0 +1,13 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"github.com/mediocregopher/radix/v3"
|
||||
)
|
||||
|
||||
func GetFromKey(key string, target interface{}) error {
|
||||
return DB.Redis.Do(radix.FlatCmd(target, "GET", key))
|
||||
}
|
||||
|
||||
func SetKeyVal(key string, val interface{}) error {
|
||||
return DB.Redis.Do(radix.FlatCmd(nil, "SET", key, val))
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
"io"
|
||||
"os"
|
||||
)
|
||||
|
||||
func ZipFiles(files []FileUpload, w io.Writer) error {
|
||||
zipWriter := zip.NewWriter(w)
|
||||
defer zipWriter.Close()
|
||||
|
||||
// Add files to zip
|
||||
for _, file := range files {
|
||||
if err := AddFileToZip(zipWriter, file); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// https://golangcode.com/create-zip-files-in-go/
|
||||
func AddFileToZip(zipWriter *zip.Writer, file FileUpload) error {
|
||||
fileToZip, err := os.Open(GetStoreDestination(file.SHA256 + file.FileExt))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
defer fileToZip.Close()
|
||||
|
||||
// get file info
|
||||
info, err := fileToZip.Stat()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
header, err := zip.FileInfoHeader(info)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Reset original file name
|
||||
header.Name = file.FileName
|
||||
|
||||
// Change to deflate for better compression
|
||||
header.Method = zip.Deflate
|
||||
|
||||
writer, err := zipWriter.CreateHeader(header)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = io.Copy(writer, fileToZip)
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Reference in New Issue