Задать вопрос
@xesax

Как скачивать файлы с S3 хранилища?

С помощью чего можно скачивать файлы? Например, я знаю точный адрес где находится файл в S3 хранилище, хочу чтобы пользователь нажал "Скачать файл" и он сразу начинался скачиваться, я сначала скачиваю файл на сервер, а потом отдаю через FileResponse, в fastapi, но как обойти без скачивания на сервер? И сразу пользователю его отдавать.
  • Вопрос задан
  • 444 просмотра
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Взять асинхронный http-клиент, типа httpx, и отдать результат запроса к S3 в виде StreamingResponse.
@app.get('/dowload')
async def download(url: str):
    async def proxy():
        async with httpx.AsyncClient() as client:
            async with client.stream("GET", url) as r:
                async for chunk in r.aiter_bytes():
                    yield chunk
                    
    return StreamingResponse(proxy())
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
2ord
@2ord
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы