feat(template): add public storage and temp file method
This commit is contained in:
@@ -10,12 +10,46 @@ import (
|
|||||||
type SvgStorage interface {
|
type SvgStorage interface {
|
||||||
Create(id string, svg io.Reader) (string, error)
|
Create(id string, svg io.Reader) (string, error)
|
||||||
Get(id string) (io.Reader, error)
|
Get(id string) (io.Reader, error)
|
||||||
|
CreateTemp(data io.Reader, filetype string) (string, error)
|
||||||
|
CreatePublic(data io.Reader, filetype string) (string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ SvgStorage = FileSvgStorage{}
|
||||||
|
|
||||||
type FileSvgStorage struct {
|
type FileSvgStorage struct {
|
||||||
basepath string
|
basepath string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (f FileSvgStorage) CreatePublic(data io.Reader, filetype string) (string, error) {
|
||||||
|
path := filepath.Join(f.basepath, "public")
|
||||||
|
if err := os.Mkdir(path, 0755); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
file, err := os.CreateTemp(path, "*."+filetype)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
return file.Name(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f FileSvgStorage) CreateTemp(data io.Reader, filetype string) (string, error) {
|
||||||
|
path := filepath.Join(f.basepath, "temp")
|
||||||
|
if err := os.Mkdir(path, 0755); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
file, err := os.CreateTemp(path, "*."+filetype)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
return file.Name(), nil
|
||||||
|
}
|
||||||
|
|
||||||
func NewFileStorage(path string) *FileSvgStorage {
|
func NewFileStorage(path string) *FileSvgStorage {
|
||||||
err := os.MkdirAll(path, 0755)
|
err := os.MkdirAll(path, 0755)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user