Aiogram бот не хочет скачивать файлы, полученные от пользователя

Есть задача. Надо скачивать файл txt или doc, который присылает пользователь. Перерыл весь интернет и нашёл два способа.

@dp.message_handler(content_types=['document'])
async def handle_docs_photo(message):
    chat_id = message.chat.id
    file_info = await bot.get_file(message.document.file_id)
    downloaded_file = await bot.download_file(file_info.file_path)
    src = 'C:/Python/' + message.document.file_name
    with open(src, 'wb') as new_file:
        new_file.write(downloaded_file)
        await bot.reply_to(message, "Пожалуй, я сохраню это")

Конкретно этот способ создаёт пустой файл в папке и выдает ошибку

TypeError: a bytes-like object is required, not '_io.BytesIO'

Написано на третьем питоне, на компе с виндой и с библиотекой aiogram.
Не знаю как можно справиться с этой проблемой и выполнить казалось бы просто действие.


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

Автор решения: DikiDart

Всё заработало, правда в таком виде:

#скачивает файл
@dp.message_handler(content_types=['document'])
async def scan_message(msg: types.Message):
    document_id = msg.document.file_id
    file_info = await bot.get_file(document_id)
    fi = file_info.file_path
    name = msg.document.file_name
    urllib.request.urlretrieve(f'https://api.telegram.org/file/bot{TOKEN}/{fi}',f'./{name}')
    await bot.send_message(msg.from_user.id, 'Файл успешно сохранён')

Файл сохраняется в папке со скриптом с именем и расширением, которым его отправили. Ура!!

→ Ссылка