This commit is contained in:
2022-03-05 22:43:05 +03:00
parent 32c80d58a5
commit ef013cc28a
2 changed files with 9 additions and 3 deletions

View File

@@ -65,11 +65,14 @@ async def cache_file(book: Book, file_type) -> Optional[CachedFile]:
await temp_file.write(chunk) await temp_file.write(chunk)
await temp_file.seek(0) await temp_file.seek(0)
upload_data = await upload_file(cast(SpooledTemporaryFile, temp_file.file), filename, caption)
await response.aclose() await response.aclose()
await client.aclose() await client.aclose()
upload_data = await upload_file(cast(SpooledTemporaryFile, temp_file.file), filename, caption)
if upload_data is None:
return None
return await CachedFile.objects.create( return await CachedFile.objects.create(
object_id=book.id, object_type=file_type, data=upload_data.data object_id=book.id, object_type=file_type, data=upload_data.data
) )

View File

@@ -15,7 +15,7 @@ class UploadedFile(BaseModel):
upload_time: datetime upload_time: datetime
async def upload_file(content: SpooledTemporaryFile, filename: str, caption: str) -> 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:
@@ -30,6 +30,9 @@ async def upload_file(content: SpooledTemporaryFile, filename: str, caption: str
timeout=5 * 60, timeout=5 * 60,
) )
if response.status_code != 200:
return None
return UploadedFile.parse_obj(response.json()) return UploadedFile.parse_obj(response.json())