Documentation
¶
Overview ¶
Package filestore persists provider ownership for uploaded files.
Index ¶
- Variables
- type ListFilter
- type MemoryStore
- func (s *MemoryStore) Close() error
- func (s *MemoryStore) Delete(_ context.Context, id string) error
- func (s *MemoryStore) Get(_ context.Context, id string) (*StoredFile, error)
- func (s *MemoryStore) List(_ context.Context, filter ListFilter, limit int, after string) ([]*StoredFile, error)
- func (s *MemoryStore) Upsert(_ context.Context, file *StoredFile) error
- type MongoDBStore
- func (s *MongoDBStore) Close() error
- func (s *MongoDBStore) Delete(ctx context.Context, id string) error
- func (s *MongoDBStore) Get(ctx context.Context, id string) (*StoredFile, error)
- func (s *MongoDBStore) List(ctx context.Context, filter ListFilter, limit int, after string) ([]*StoredFile, error)
- func (s *MongoDBStore) Upsert(ctx context.Context, file *StoredFile) error
- type Result
- type SQLStore
- func (s *SQLStore) Close() error
- func (s *SQLStore) Delete(ctx context.Context, id string) error
- func (s *SQLStore) Get(ctx context.Context, id string) (*StoredFile, error)
- func (s *SQLStore) List(ctx context.Context, filter ListFilter, limit int, after string) ([]*StoredFile, error)
- func (s *SQLStore) Upsert(ctx context.Context, file *StoredFile) error
- type Store
- type StoredFile
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 ListFilter ¶ added in v0.1.87
ListFilter narrows a listing. Empty fields do not filter. UserPath keeps the mappings inside one subtree: the path itself and its descendants; root ("/") keeps every mapping that carries a path.
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) List ¶ added in v0.1.87
func (s *MemoryStore) List(_ context.Context, filter ListFilter, limit int, after string) ([]*StoredFile, error)
List returns the mappings matching filter, newest first, after the cursor.
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) List ¶ added in v0.1.87
func (s *MongoDBStore) List(ctx context.Context, filter ListFilter, limit int, after string) ([]*StoredFile, error)
List returns the mappings matching filter, newest first, after the cursor.
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.
func (*SQLStore) List ¶ added in v0.1.87
func (s *SQLStore) List(ctx context.Context, filter ListFilter, limit int, after string) ([]*StoredFile, error)
List returns the mappings matching filter, newest first, after the cursor.
type Store ¶
type Store interface {
Upsert(ctx context.Context, file *StoredFile) error
Get(ctx context.Context, id string) (*StoredFile, error)
// List returns mappings newest first, starting after the cursor id. The
// cursor must exist and match the filter, else ErrNotFound.
List(ctx context.Context, filter ListFilter, limit int, after 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.