Documentation
¶
Overview ¶
Package filestore persists provider ownership for uploaded files.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrNotFound = errors.New("file mapping not found")
ErrNotFound indicates a requested file mapping was not found.
Functions ¶
This section is empty.
Types ¶
type MemoryStore ¶
type MemoryStore struct {
// contains filtered or unexported fields
}
MemoryStore keeps file provider mappings in process memory.
func NewMemoryStore ¶
func NewMemoryStore() *MemoryStore
NewMemoryStore creates an empty in-memory file store.
func (*MemoryStore) Delete ¶
func (s *MemoryStore) Delete(_ context.Context, id string) error
Delete removes one file mapping by id.
func (*MemoryStore) Get ¶
func (s *MemoryStore) Get(_ context.Context, id string) (*StoredFile, error)
Get retrieves one file mapping by id.
func (*MemoryStore) Upsert ¶
func (s *MemoryStore) Upsert(_ context.Context, file *StoredFile) error
Upsert creates or replaces a file mapping.
type MongoDBStore ¶
type MongoDBStore struct {
// contains filtered or unexported fields
}
MongoDBStore stores file provider mappings in MongoDB.
func NewMongoDBStore ¶
func NewMongoDBStore(database *mongo.Database) (*MongoDBStore, error)
NewMongoDBStore creates collection indexes if needed.
func (*MongoDBStore) Close ¶
func (s *MongoDBStore) Close() error
Close is a no-op; Mongo client lifecycle is managed by storage layer.
func (*MongoDBStore) Delete ¶
func (s *MongoDBStore) Delete(ctx context.Context, id string) error
Delete removes one file mapping by id.
func (*MongoDBStore) Get ¶
func (s *MongoDBStore) Get(ctx context.Context, id string) (*StoredFile, error)
Get retrieves one file mapping by id.
func (*MongoDBStore) Upsert ¶
func (s *MongoDBStore) Upsert(ctx context.Context, file *StoredFile) error
Upsert creates or replaces a file mapping.
type Result ¶
type Result struct {
Store Store
}
Result holds the initialized file store.
type SQLStore ¶ added in v0.1.60
type SQLStore struct {
// contains filtered or unexported fields
}
SQLStore stores file provider mappings in a SQL database.
func NewSQLStore ¶ added in v0.1.60
NewSQLStore creates the file_mappings table and indexes if needed.
func (*SQLStore) Close ¶ added in v0.1.60
Close is a no-op; connection lifecycle is managed by the storage layer.
type Store ¶
type Store interface {
Upsert(ctx context.Context, file *StoredFile) error
Get(ctx context.Context, id string) (*StoredFile, error)
Delete(ctx context.Context, id string) error
Close() error
}
Store defines persistence operations for file provider mappings.
type StoredFile ¶
type StoredFile struct {
ID string `json:"id" bson:"_id"`
ProviderType string `json:"provider_type" bson:"provider_type"`
Purpose string `json:"purpose,omitempty" bson:"purpose,omitempty"`
Filename string `json:"filename,omitempty" bson:"filename,omitempty"`
Bytes int64 `json:"bytes,omitempty" bson:"bytes,omitempty"`
CreatedAt int64 `json:"created_at,omitempty" bson:"created_at,omitempty"`
UserPath string `json:"user_path,omitempty" bson:"user_path,omitempty"`
}
StoredFile maps an OpenAI-compatible file ID to the provider that owns it.