| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package stores
- import (
- "excalidraw-complete/core"
- "excalidraw-complete/stores/aws"
- "excalidraw-complete/stores/filesystem"
- "excalidraw-complete/stores/memory"
- "excalidraw-complete/stores/sqlite"
- "os"
- "github.com/sirupsen/logrus"
- )
- func GetStore() core.DocumentStore {
- storageType := os.Getenv("STORAGE_TYPE")
- var store core.DocumentStore
- storageField := logrus.Fields{
- "storageType": storageType,
- }
- switch storageType {
- case "filesystem":
- basePath := os.Getenv("LOCAL_STORAGE_PATH")
- storageField["basePath"] = basePath
- store = filesystem.NewDocumentStore(basePath)
- case "sqlite":
- dataSourceName := os.Getenv("DATA_SOURCE_NAME")
- storageField["dataSourceName"] = dataSourceName
- store = sqlite.NewDocumentStore(dataSourceName)
- case "s3":
- bucketName := os.Getenv("S3_BUCKET_NAME")
- storageField["bucketName"] = bucketName
- store = aws.NewDocumentStore(bucketName)
- default:
- store = memory.NewDocumentStore()
- storageField["storageType"] = "in-memory"
- }
- logrus.WithFields(storageField).Info("Use storage")
- return store
- }
|