3
0

Refactor & simplify internal (plain) storage

Default internal storage becomes "plain" storage
Open() fn now returns io.ReadSeeker instead of afero.File
This commit is contained in:
Denis Arh
2019-10-15 12:57:07 +02:00
parent b71f8a77ad
commit e754a2fe0b
7 changed files with 33 additions and 25 deletions

View File

@@ -13,6 +13,7 @@ import (
"github.com/cortezaproject/corteza-server/pkg/cli/options"
"github.com/cortezaproject/corteza-server/pkg/permissions"
"github.com/cortezaproject/corteza-server/pkg/store"
"github.com/cortezaproject/corteza-server/pkg/store/plain"
systemProto "github.com/cortezaproject/corteza-server/system/proto"
)
@@ -77,7 +78,7 @@ func Init(ctx context.Context, log *zap.Logger, c Config) (err error) {
DefaultLogger = log.Named("service")
if DefaultStore == nil {
DefaultStore, err = store.New(c.Storage.Path)
DefaultStore, err = plain.New(c.Storage.Path)
log.Info("initializing store", zap.String("path", c.Storage.Path), zap.Error(err))
if err != nil {
return err

View File

@@ -11,6 +11,7 @@ import (
"github.com/cortezaproject/corteza-server/pkg/http"
"github.com/cortezaproject/corteza-server/pkg/permissions"
"github.com/cortezaproject/corteza-server/pkg/store"
"github.com/cortezaproject/corteza-server/pkg/store/plain"
)
type (
@@ -48,7 +49,7 @@ func Init(ctx context.Context, log *zap.Logger, c Config) (err error) {
DefaultLogger = log.Named("service")
if DefaultStore == nil {
DefaultStore, err = store.New(c.Storage.Path)
DefaultStore, err = plain.New(c.Storage.Path)
log.Info("initializing store", zap.String("path", c.Storage.Path), zap.Error(err))
if err != nil {
return err

22
pkg/store/interfaces.go Normal file
View File

@@ -0,0 +1,22 @@
package store
import (
"io"
)
type Store interface {
// Original returns URL to the original file
Original(id uint64, ext string) string
// Preview returns URL to the preview (of the original) file
Preview(id uint64, ext string) string
// Save stores the file
Save(filename string, f io.Reader) error
// Remove deletes the file
Remove(filename string) error
// Open returns file handle
Open(filename string) (io.ReadSeeker, error)
}

View File

@@ -1,4 +1,4 @@
package store
package plain
import (
"fmt"
@@ -18,17 +18,6 @@ type (
originalFn func(id uint64, ext string) string
previewFn func(id uint64, ext string) string
}
Store interface {
Namespace() string
Original(id uint64, ext string) string
Preview(id uint64, ext string) string
Save(filename string, contents io.Reader) error
Remove(filename string) error
Open(filename string) (afero.File, error)
}
)
var (
@@ -55,10 +44,6 @@ func NewWithAfero(fs afero.Fs, namespace string) (*store, error) {
}, nil
}
func (s *store) Namespace() string {
return s.namespace
}
func (s *store) check(filename string) error {
if len(filename) == 0 {
return errors.Errorf("Invalid filename when trying to store file: '%s' (for %s)", filename, s.namespace)
@@ -103,7 +88,7 @@ func (s *store) Remove(filename string) error {
return s.fs.Remove(filename)
}
func (s *store) Open(filename string) (afero.File, error) {
func (s *store) Open(filename string) (io.ReadSeeker, error) {
// check filename for validity
if err := s.check(filename); err != nil {
return nil, err

View File

@@ -1,4 +1,4 @@
package store
package plain
import (
"bytes"
@@ -20,7 +20,6 @@ func TestStore(t *testing.T) {
require.True(t, err == nil, "Unexpected error when creating store: %+v", err)
require.True(t, store != nil, "Expected non-nil return for new store")
require.True(t, store.Namespace() == "test", "Unexpected store namespace: test != %s", store.Namespace())
{
fn := store.Original(123, "jpg")

View File

@@ -25,7 +25,7 @@ import (
"github.com/cortezaproject/corteza-server/pkg/logger"
"github.com/cortezaproject/corteza-server/pkg/permissions"
"github.com/cortezaproject/corteza-server/pkg/rand"
"github.com/cortezaproject/corteza-server/pkg/store"
"github.com/cortezaproject/corteza-server/pkg/store/plain"
sysTypes "github.com/cortezaproject/corteza-server/system/types"
"github.com/cortezaproject/corteza-server/tests/helpers"
)
@@ -87,7 +87,7 @@ func InitConfig() {
logger.SetDefault(log)
service.DefaultPermissions = p
if service.DefaultStore, err = store.NewWithAfero(afero.NewMemMapFs(), "test"); err != nil {
if service.DefaultStore, err = plain.NewWithAfero(afero.NewMemMapFs(), "test"); err != nil {
panic(err)
}

View File

@@ -25,7 +25,7 @@ import (
"github.com/cortezaproject/corteza-server/pkg/logger"
"github.com/cortezaproject/corteza-server/pkg/permissions"
"github.com/cortezaproject/corteza-server/pkg/rand"
"github.com/cortezaproject/corteza-server/pkg/store"
"github.com/cortezaproject/corteza-server/pkg/store/plain"
sysTypes "github.com/cortezaproject/corteza-server/system/types"
"github.com/cortezaproject/corteza-server/tests/helpers"
)
@@ -77,7 +77,7 @@ func InitConfig() {
logger.SetDefault(log)
service.DefaultPermissions = p
if service.DefaultStore, err = store.NewWithAfero(afero.NewMemMapFs(), "test"); err != nil {
if service.DefaultStore, err = plain.NewWithAfero(afero.NewMemMapFs(), "test"); err != nil {
panic(err)
}