mirror of
https://github.com/flibusta-apps/telegram_files_cache_server.git
synced 2025-12-06 14:45:36 +01:00
Fix client closing
This commit is contained in:
@@ -10,13 +10,18 @@ async def download(
|
|||||||
) -> Optional[tuple[httpx.Response, httpx.AsyncClient, str]]:
|
) -> Optional[tuple[httpx.Response, httpx.AsyncClient, str]]:
|
||||||
headers = {"Authorization": env_config.DOWNLOADER_API_KEY}
|
headers = {"Authorization": env_config.DOWNLOADER_API_KEY}
|
||||||
|
|
||||||
client = httpx.AsyncClient(timeout=120)
|
client = httpx.AsyncClient(timeout=300)
|
||||||
request = client.build_request(
|
request = client.build_request(
|
||||||
"GET",
|
"GET",
|
||||||
f"{env_config.DOWNLOADER_URL}/download/{source_id}/{remote_id}/{file_type}",
|
f"{env_config.DOWNLOADER_URL}/download/{source_id}/{remote_id}/{file_type}",
|
||||||
headers=headers,
|
headers=headers,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
response = await client.send(request, stream=True)
|
response = await client.send(request, stream=True)
|
||||||
|
except httpx.ConnectError:
|
||||||
|
await client.aclose()
|
||||||
|
return None
|
||||||
|
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
await response.aclose()
|
await response.aclose()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Optional
|
|
||||||
from tempfile import SpooledTemporaryFile
|
from tempfile import SpooledTemporaryFile
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
@@ -15,7 +15,9 @@ class UploadedFile(BaseModel):
|
|||||||
upload_time: datetime
|
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}
|
headers = {"Authorization": env_config.FILES_SERVER_API_KEY}
|
||||||
|
|
||||||
async with httpx.AsyncClient() as client:
|
async with httpx.AsyncClient() as client:
|
||||||
@@ -49,9 +51,15 @@ async def download_file(
|
|||||||
headers=headers,
|
headers=headers,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
response = await client.send(request, stream=True)
|
response = await client.send(request, stream=True)
|
||||||
|
except httpx.ConnectError:
|
||||||
|
await client.aclose()
|
||||||
|
return None
|
||||||
|
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
|
await response.aclose()
|
||||||
|
await client.aclose()
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return response, client
|
return response, client
|
||||||
|
|||||||
Reference in New Issue
Block a user