Fix client closing

This commit is contained in:
2022-04-24 23:14:30 +03:00
parent ba9fb6af05
commit 570628a821
2 changed files with 18 additions and 5 deletions

View File

@@ -10,13 +10,18 @@ async def download(
) -> Optional[tuple[httpx.Response, httpx.AsyncClient, str]]:
headers = {"Authorization": env_config.DOWNLOADER_API_KEY}
client = httpx.AsyncClient(timeout=120)
client = httpx.AsyncClient(timeout=300)
request = client.build_request(
"GET",
f"{env_config.DOWNLOADER_URL}/download/{source_id}/{remote_id}/{file_type}",
headers=headers,
)
response = await client.send(request, stream=True)
try:
response = await client.send(request, stream=True)
except httpx.ConnectError:
await client.aclose()
return None
if response.status_code != 200:
await response.aclose()

View File

@@ -1,6 +1,6 @@
from datetime import datetime
from typing import Optional
from tempfile import SpooledTemporaryFile
from typing import Optional
import httpx
from pydantic import BaseModel
@@ -15,7 +15,9 @@ class UploadedFile(BaseModel):
upload_time: datetime
async def upload_file(content: SpooledTemporaryFile, filename: str, caption: str) -> Optional[UploadedFile]:
async def upload_file(
content: SpooledTemporaryFile, filename: str, caption: str
) -> Optional[UploadedFile]:
headers = {"Authorization": env_config.FILES_SERVER_API_KEY}
async with httpx.AsyncClient() as client:
@@ -49,9 +51,15 @@ async def download_file(
headers=headers,
)
response = await client.send(request, stream=True)
try:
response = await client.send(request, stream=True)
except httpx.ConnectError:
await client.aclose()
return None
if response.status_code != 200:
await response.aclose()
await client.aclose()
return None
return response, client