Выполнить часть await запросов одновременно, после переходить к последующим await
Использую: aiogram==3.17.0
Делаю в телеграм бота загрузку файлов на сервер. Проблема в том, что если пользователь загружает более 1 файла - происходит дублирование ответов от бота, т.е. он по мере загрузки каждого вложенного файла - бот отправляет сообщение и выполняет действие. Как сначала выполнить загрузку всех вложений на сервер, а после ответить об успехе пользователю?
Код:
@dp.message_handler(content_types=['document'], state=Save.down)
async def func_down_doc(message: types.Message, state: FSMContext):
async with state.proxy():
attachment_files = []
file_path = (await bot.get_file(message.document.file_id)).file_path
downloaded_path = '/path/to/file/' + message.document.file_name
downloaded_file = await bot.download_file(file_path, downloaded_path)
attachment_files.append(downloaded_path)
await bot.send_message(message.from_user.id, "Загрузка завершена!")
await state.finish()
Хочу, чтобы сначала выполнился полностью эта команда, потом все остальное:
downloaded_file = await bot.download_file(file_path, downloaded_path)