Skip to main content

FastAPI Storages

Project description

Build Status Publish Status Coverage Package version Supported Python versions


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}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_storages-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_storages-0.1.0-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_storages-0.1.0.tar.gz.

File metadata

  • Download URL: fastapi_storages-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.24.1

File hashes

Hashes for fastapi_storages-0.1.0.tar.gz
Algorithm Hash digest
SHA256 004dd2143b1ead6f2f8070137a17d7f1601827854bbdb4766a64defe00947a6e
MD5 5eb69b42cd875a6f6870449cb821ce17
BLAKE2b-256 e0f82a5a46bfdb6a273034c334a1a5e87b6ab5b7e7922c2b834ba13ceccdbec5

See more details on using hashes here.

File details

Details for the file fastapi_storages-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_storages-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8dd7c6bdbe4ae03969588adfb7b19162a93703addb1aebf803dfc68576ede2a8
MD5 e331713b72d264affd71d274d658e171
BLAKE2b-256 1e82335d1f861a5b59919f47dc13817f026a7c968fbd297d942d8c94b27190f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page