Skip to content

FileStore

::: filestore.FileStore

The core orchestration class. Used as a FastAPI dependency.

Constructor

FileStore(
    name: str | None = None,
    count: int = 1,
    required: bool = False,
    fields: list[FileField] | None = None,
    config: Config | Mapping[str, Any] | None = None,
)
Parameter Type Default Description
name str \| None None Shorthand for defining a single field
count int 1 Maximum file count (single-field shorthand)
required bool False Whether the field is required
fields list[FileField] \| None None Explicit list of field definitions
config Config \| dict \| None None Store-level configuration

Usage

Single Field

from filestore import FileStore

storage = FileStore(name="avatar", count=1, required=True)

Multiple Fields

from filestore import FileField, FileStore

storage = FileStore(
    fields=[
        FileField(name="avatar", required=True),
        FileField(name="resume"),
    ],
)

As a FastAPI Dependency

from fastapi import Depends
from filestore import Store

@app.post("/upload")
async def upload(store: Store = Depends(storage)):
    return store.to_dict()

Attributes

Attribute Type Description
fields list[FileField] Configured upload fields
config dict[str, Any] Store-level configuration
StorageEngine Type[StorageEngine] Default engine class (LocalEngine)

Subclasses

Class Backend Extra
LocalStorage Local filesystem
MemoryStorage In-memory bytes
S3Storage Amazon S3 filestore[s3]
GCSStorage Google Cloud Storage filestore[gcp]
AzureStorage Azure Blob Storage filestore[azure]