hs_fast_api / main.py
David Li
fix: again
8ca5d50
Raw History Blame Contribute Delete
1.3 kB
from fastapi import FastAPI
import pandas as pd
import os
from deta import Deta
from fastapi.responses import StreamingResponse, FileResponse
from io import BytesIO
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
# load deta using
project_key = os.getenv("DETA_DRIVE_KEY")
deta = Deta(project_key)
drive = deta.Drive("stonk_events")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/files")
async def get_files(exchange: str = "US"):
"""
"""
# get files in deta
result = drive.list()
all_files = result.get("names")
paging = result.get("paging")
last = paging.get("last") if paging else None
while (last):
# provide last from previous call
result = drive.list(last=last)
all_files += result.get("names")
# update last
paging = result.get("paging")
last = paging.get("last") if paging else None
return all_files
# get file by name from deta /file/{id}
# reason it was likely failing is because of the response size limit
@app.get("/file/{id}")
async def get_file(id: str):
res = drive.get(id)
return StreamingResponse(res.iter_chunks(1024), media_type="application/pdf")