This commit is contained in:
2023-08-09 17:34:43 +02:00
parent 8169d832a8
commit 027b1acb73
2 changed files with 16 additions and 8 deletions

View File

@@ -25,9 +25,14 @@ class FileUploader:
return StoragesContainer.USER_STORAGES return StoragesContainer.USER_STORAGES
def __init__( def __init__(
self, file: UploadFile, file_size: int, caption: Optional[str] = None self,
file: UploadFile,
filename: str,
file_size: int,
caption: Optional[str] = None,
) -> None: ) -> None:
self.file = file self.file = file
self.filename = filename
self.file_size = file_size self.file_size = file_size
self.caption = caption self.caption = caption
@@ -49,15 +54,13 @@ class FileUploader:
else: else:
storage = self.get_user_storage() storage = self.get_user_storage()
assert self.file.filename
setattr(self.file, "seekable", seekable) # noqa: B010 setattr(self.file, "seekable", seekable) # noqa: B010
setattr(self.file, "name", self.file.filename) # noqa: B010 setattr(self.file, "name", self.filename) # noqa: B010
data = await storage.upload( data = await storage.upload(
self.file, # type: ignore self.file, # type: ignore
file_size=self.file_size, file_size=self.file_size,
filename=self.file.filename, filename=self.filename,
caption=self.caption, caption=self.caption,
) )
@@ -99,9 +102,13 @@ class FileUploader:
@classmethod @classmethod
async def upload( async def upload(
cls, file: UploadFile, file_size: int, caption: Optional[str] = None cls,
file: UploadFile,
filename: str,
file_size: int,
caption: Optional[str] = None,
) -> Optional[UploadedFile]: ) -> Optional[UploadedFile]:
uploader = cls(file, file_size, caption) uploader = cls(file, filename, file_size, caption)
upload_result = await uploader._upload() upload_result = await uploader._upload()
if not upload_result: if not upload_result:

View File

@@ -18,9 +18,10 @@ router = APIRouter(
async def upload_file( async def upload_file(
file: UploadFile, file: UploadFile,
file_size: Annotated[int, Form()], file_size: Annotated[int, Form()],
filename: Annotated[str, Form()],
caption: Annotated[Optional[str], Form()], caption: Annotated[Optional[str], Form()],
): ):
return await FileUploader.upload(file, file_size, caption=caption) return await FileUploader.upload(file, filename, file_size, caption=caption)
@router.get("/download_by_message/{chat_id}/{message_id}") @router.get("/download_by_message/{chat_id}/{message_id}")