package blob import ( "fmt" "sync" "forge.cadoles.com/arcad/edge/pkg/storage" "github.com/google/uuid" "github.com/pkg/errors" ) type BucketID string type WriterID string type ReaderID string type Service struct { store storage.BlobStore buckets sync.Map writers sync.Map readers sync.Map } func NewService(store storage.BlobStore) *Service { return &Service{ store: store, } } func NewBucketID() (BucketID, error) { uuid, err := uuid.NewUUID() if err != nil { return "", errors.WithStack(err) } id := BucketID(fmt.Sprintf("bucket-%s", uuid.String())) return id, nil } func NewWriterID() (WriterID, error) { uuid, err := uuid.NewUUID() if err != nil { return "", errors.WithStack(err) } id := WriterID(fmt.Sprintf("writer-%s", uuid.String())) return id, nil } func NewReaderID() (ReaderID, error) { uuid, err := uuid.NewUUID() if err != nil { return "", errors.WithStack(err) } id := ReaderID(fmt.Sprintf("reader-%s", uuid.String())) return id, nil }