storage.go 737 B

123456789101112131415161718192021222324252627282930
  1. package stores
  2. import (
  3. "excalidraw-complete/core"
  4. "excalidraw-complete/stores/aws"
  5. "excalidraw-complete/stores/filesystem"
  6. "excalidraw-complete/stores/memory"
  7. "excalidraw-complete/stores/sqlite"
  8. "os"
  9. )
  10. func GetStore() core.DocumentStore {
  11. storageType := os.Getenv("STORAGE_TYPE")
  12. var store core.DocumentStore
  13. switch storageType {
  14. case "filesystem":
  15. basePath := os.Getenv("LOCAL_STORAGE_PATH")
  16. store = filesystem.NewDocumentStore(basePath)
  17. case "sqlite":
  18. dataSourceName := os.Getenv("DATA_SOURCE_NAME")
  19. store = sqlite.NewDocumentStore(dataSourceName)
  20. case "s3":
  21. bucketName := os.Getenv("S3_BUCKET_NAME")
  22. store = aws.NewDocumentStore(bucketName)
  23. default:
  24. store = memory.NewDocumentStore()
  25. }
  26. return store
  27. }