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.2.1.tar.gz (6.5 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.2.1-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for fastapi_storages-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f0ecbd7106c58b16b0b78dc83dfb98f0b4d348760bae385a674ec0bcb6d1a9b4
MD5 364b4290bd3c9d3b2a8a452c5b328aa8
BLAKE2b-256 9d3f5866860d87293ef09fe908e4a7c871e2597d24934a3e9d20bd7e942f162a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fastapi_storages-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e0382c972a70a9b286af5fe26f3a165587b0f898f5588aac95f616b05a1342a0
MD5 9309610cb535ad71a15d3dcdd323b72a
BLAKE2b-256 ec6743a5a0ab66dc688438df903655f4d8ef575bffef39438a8fd5966b3c8134

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