Как я могу ускорить загрузку файлов в хранилище S3?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу ускорить загрузку файлов в хранилище S3?

Сообщение Anonymous »

Я использую 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 as e:
raise e
например, файл размером 20 МБ отправляется за 8 секунд.
Я не знаю, как можно увеличить скорость загрузки, так как у меня есть с файлами и S3 пока не работал

Подробнее здесь: https://stackoverflow.com/questions/789 ... s3-storage
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»