fastapi-storages 0.3.0

Creator: bradpython12

Last updated:

Add to Cart

Description:

fastapistorages 0.3.0

FastAPI Storages
A collection of backend storages and ORM extensions to simplify file management in FastAPI and Starlette projects.
Similar to django-storages project, but aiming to work with a wider range of database ORMs and backends.

Documentation: https://aminalaee.dev/fastapi-storages
Source Code: https://github.com/aminalaee/fastapi-storages

Installation
pip install fastapi-storages
pip install 'fastapi-storages[full]'

Supported integrations

SQLAlchemy
SQLModel
SQLAdmin

Supported storage backends

FileSystemStorage
S3Storage

Example
from fastapi import FastAPI, UploadFile
from sqlalchemy import Column, Integer, create_engine
from sqlalchemy.orm import Session, declarative_base
from fastapi_storages import FileSystemStorage
from fastapi_storages.integrations.sqlalchemy import FileType

app = FastAPI()
Base = declarative_base()
engine = create_engine("sqlite:///test.db")


class Example(Base):
__tablename__ = "example"

id = Column(Integer, primary_key=True)
file = Column(FileType(storage=FileSystemStorage(path="/tmp")))


# Create database and table
Base.metadata.create_all(engine)


@app.post("/upload/")
def create_upload_file(file: UploadFile):
example = Example(file=file)
with Session(engine) as session:
session.add(example)
session.commit()
return {"filename": example.file.name}

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.