Add poc for local fs repos

This commit is contained in:
Abhishek Pandey 2023-08-22 17:01:25 +05:30
parent 0e6ef90e41
commit 64b9d362cf
3 changed files with 26 additions and 0 deletions

View File

@ -96,6 +96,8 @@ func (w *conn) Initialize(
opts repository.Options,
retentionOpts repository.Retention,
) error {
w.storage.Provider = storage.ProviderFS
bst, err := blobStoreByProvider(ctx, opts, w.storage)
if err != nil {
return clues.Wrap(err, "initializing storage")
@ -154,6 +156,8 @@ func (w *conn) Initialize(
}
func (w *conn) Connect(ctx context.Context, opts repository.Options) error {
w.storage.Provider = storage.ProviderFS
bst, err := blobStoreByProvider(ctx, opts, w.storage)
if err != nil {
return clues.Wrap(err, "initializing storage")
@ -225,6 +229,8 @@ func blobStoreByProvider(
switch s.Provider {
case storage.ProviderS3:
return s3BlobStorage(ctx, opts, s)
case storage.ProviderFS:
return localFSBlobStorage(ctx, opts, s)
default:
return nil, clues.New("storage provider details are required").WithClues(ctx)
}

View File

@ -2,9 +2,11 @@ package kopia
import (
"context"
"os"
"github.com/alcionai/clues"
"github.com/kopia/kopia/repo/blob"
"github.com/kopia/kopia/repo/blob/filesystem"
"github.com/kopia/kopia/repo/blob/s3"
"github.com/alcionai/corso/src/pkg/control/repository"
@ -54,3 +56,20 @@ func s3BlobStorage(
return store, nil
}
func localFSBlobStorage(
ctx context.Context,
repoOpts repository.Options,
s storage.Storage,
) (blob.Storage, error) {
opts := filesystem.Options{
Path: os.Getenv("filesystem_path"),
}
store, err := filesystem.New(ctx, &opts, false)
if err != nil {
return nil, clues.Stack(err).WithClues(ctx)
}
return store, nil
}

View File

@ -14,6 +14,7 @@ type storageProvider int
const (
ProviderUnknown storageProvider = 0 // Unknown Provider
ProviderS3 storageProvider = 1 // S3
ProviderFS storageProvider = 2 // local or network attached file system
)
// storage parsing errors