Skip to content

Commit 65c7178

Browse files
FIX (backups): Validate data and temp directory exist on app start (not only for LocalStorage)
1 parent d1aebd1 commit 65c7178

File tree

3 files changed

+28
-26
lines changed

3 files changed

+28
-26
lines changed

backend/cmd/main.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ func main() {
5050

5151
runMigrations(log)
5252

53+
// create directories that used for backups and restore
54+
files_utils.EnsureDirectories([]string{
55+
config.GetEnv().TempFolder,
56+
config.GetEnv().DataFolder,
57+
})
58+
5359
// Handle password reset if flag is provided
5460
newPassword := flag.String("new-password", "", "Set a new password for the user")
5561
flag.Parse()

backend/internal/features/storages/models/local/model.go

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,6 @@ func (l *LocalStorage) TableName() string {
2525
func (l *LocalStorage) SaveFile(logger *slog.Logger, fileID uuid.UUID, file io.Reader) error {
2626
logger.Info("Starting to save file to local storage", "fileId", fileID.String())
2727

28-
if err := l.ensureDirectories(); err != nil {
29-
logger.Error("Failed to ensure directories", "fileId", fileID.String(), "error", err)
30-
return err
31-
}
32-
3328
tempFilePath := filepath.Join(config.GetEnv().TempFolder, fileID.String())
3429
logger.Debug("Creating temp file", "fileId", fileID.String(), "tempPath", tempFilePath)
3530

@@ -134,14 +129,11 @@ func (l *LocalStorage) DeleteFile(fileID uuid.UUID) error {
134129
}
135130

136131
func (l *LocalStorage) Validate() error {
137-
return l.ensureDirectories()
132+
// nothing to validate
133+
return nil
138134
}
139135

140136
func (l *LocalStorage) TestConnection() error {
141-
if err := l.ensureDirectories(); err != nil {
142-
return err
143-
}
144-
145137
testFile := filepath.Join(config.GetEnv().TempFolder, "test_connection")
146138
f, err := os.Create(testFile)
147139
if err != nil {
@@ -157,19 +149,3 @@ func (l *LocalStorage) TestConnection() error {
157149

158150
return nil
159151
}
160-
161-
func (l *LocalStorage) ensureDirectories() error {
162-
// Standard permissions for directories: owner
163-
// can read/write/execute, others can read/execute
164-
const directoryPermissions = 0755
165-
166-
if err := os.MkdirAll(config.GetEnv().DataFolder, directoryPermissions); err != nil {
167-
return fmt.Errorf("failed to create backups directory: %w", err)
168-
}
169-
170-
if err := os.MkdirAll(config.GetEnv().TempFolder, directoryPermissions); err != nil {
171-
return fmt.Errorf("failed to create temp directory: %w", err)
172-
}
173-
174-
return nil
175-
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package files_utils
2+
3+
import (
4+
"fmt"
5+
"os"
6+
)
7+
8+
func EnsureDirectories(directories []string) error {
9+
// Standard permissions for directories: owner
10+
// can read/write/execute, others can read/execute
11+
const directoryPermissions = 0755
12+
13+
for _, directory := range directories {
14+
if err := os.MkdirAll(directory, directoryPermissions); err != nil {
15+
return fmt.Errorf("failed to create directory %s: %w", directory, err)
16+
}
17+
}
18+
19+
return nil
20+
}

0 commit comments

Comments
 (0)