From 42b805fbd1cfb3a993da815b033aa3a50831687b Mon Sep 17 00:00:00 2001 From: Kenneth Date: Sat, 29 Nov 2025 18:39:21 +0000 Subject: [PATCH] feat: add blob store Initialize method --- apps/backend/internal/blob/fs_store.go | 4 ++++ apps/backend/internal/blob/store.go | 1 + apps/backend/internal/drexa/server.go | 6 ++++++ 3 files changed, 11 insertions(+) diff --git a/apps/backend/internal/blob/fs_store.go b/apps/backend/internal/blob/fs_store.go index a39f91a..bb8c645 100644 --- a/apps/backend/internal/blob/fs_store.go +++ b/apps/backend/internal/blob/fs_store.go @@ -24,6 +24,10 @@ func NewFSStore(config FSStoreConfig) *FSStore { return &FSStore{config: config} } +func (s *FSStore) Initialize(ctx context.Context) error { + return os.MkdirAll(s.config.Root, 0755) +} + func (s *FSStore) GenerateUploadURL(ctx context.Context, key Key, opts UploadURLOptions) (string, error) { return s.config.UploadURL, nil } diff --git a/apps/backend/internal/blob/store.go b/apps/backend/internal/blob/store.go index 0ddb252..0c9c243 100644 --- a/apps/backend/internal/blob/store.go +++ b/apps/backend/internal/blob/store.go @@ -15,6 +15,7 @@ type UpdateOptions struct { } type Store interface { + Initialize(ctx context.Context) error GenerateUploadURL(ctx context.Context, key Key, opts UploadURLOptions) (string, error) Put(ctx context.Context, key Key, reader io.Reader) error Update(ctx context.Context, key Key, opts UpdateOptions) error diff --git a/apps/backend/internal/drexa/server.go b/apps/backend/internal/drexa/server.go index 7117999..a150889 100644 --- a/apps/backend/internal/drexa/server.go +++ b/apps/backend/internal/drexa/server.go @@ -1,6 +1,7 @@ package drexa import ( + "context" "fmt" "github.com/get-drexa/drexa/internal/auth" @@ -29,6 +30,11 @@ func NewServer(c Config) (*fiber.App, error) { return nil, fmt.Errorf("unknown storage backend: %s", c.Storage.Backend) } + err := blobStore.Initialize(context.Background()) + if err != nil { + return nil, fmt.Errorf("failed to initialize blob store: %w", err) + } + // Initialize key resolver based on config var keyResolver virtualfs.BlobKeyResolver switch c.Storage.Mode {