Как можно увеличить скорость загрузки в S3 хранилище?

Я использую python + fastapi и aiobotocore для загрузки файлов в S3 хранилище. Вот мой роутер который отправляет файл в хранилище (Код урезан)

@upload_router.post('')
async def upload_file(
        request: Request, 
        file: Annotated[UploadFile, File()], 
        user_service: Annotated[UserService, Depends(get_user_service)], 
        file_service: Annotated[FileService, Depends(get_file_service)],
        session: Annotated[AsyncSession, Depends(get_async_session)],
    ):
 
    await s3_client.upload_file(file.file, f'{unique_filename}_{file.filename}')

вот код самой загрузки

class S3Client:
    def __init__(
            self,
            aws_access_key_id: str,
            aws_secret_access_key: str,
            endpoint_url: str,
            region_name: str,
            bucket_name: str,
    ):
        self.config = {
            "aws_access_key_id": aws_access_key_id,
            "aws_secret_access_key": aws_secret_access_key,
            "endpoint_url": endpoint_url,
            "region_name": region_name
        }
        self.bucket_name = bucket_name
        self.session = get_session()

    @asynccontextmanager
    async def get_client(self):
        async with self.session.create_client("s3", **self.config) as client:
            yield client

    async def upload_file( self, file_path: bytes, file_name: str):
        try:
            async with self.get_client() as client:
                await client.put_object(
                    Bucket=self.bucket_name,
                    Key=file_name,
                    Body=file_path,
                )
        except ClientError:
            raise ClientError

например файл размером 20 мб, отправляется 8 секунд.


Ответы (0 шт):