как загрузить файлы из облака в телеграм бота (python)

делаю пет проект, суть такая: есть админка написаная на django, с нее администрируется телеграм бот и в перспективе будет добавлен сайт (поэтому для написания админки выбрал django, а не чего нибудь попроще), используется база данных postgresql и для хранения медиа файлов облачное хранилище на backblaze, сейчас я бьюсь над тем, чтобы при добавлении новых медиафайлов через админку файлы так же загружались в телеграмм бота и в бд созранялся ID этих файлов, чтобы каждый раз не качать с облака. Я пробовал зайти со стороны бота, и при отправке медиафайлов проверял есть ли его айди в БД и добавлял при необходимости, при загрузке с локального диска подход работал, но при загрузке из облака телеграм как то блокирует его и не получается загрузить (вот реализация)

@staticmethod
async def lesson_handler(message: types.Message):
    async with session_maker() as session:
        theme = message.text

        lessons = await get_lesson_data(session, theme)
        if lessons:
            for lesson in lessons:
                await message.answer(lesson["name"])
                await message.answer(lesson["annotation"])

                if lesson["audiofile_id"] and lesson["text_file_id"]:
                    # Если ID уже есть, отправляем их
                    await message.answer_audio(audio=lesson["audiofile_id"])
                    await message.answer_document(document=lesson["text_file_id"])
                else:
                    # Отправляем файлы из Backblaze B2
                    audio_path = f"audio_lesson/{lesson['audio_lesson']}"
                    text_path = f"text_lesson/{lesson['text_lesson']}"

                    audio_msg = await MyRouter.send_file_to_telegram(
                        message.chat.id, audio_path, caption=lesson["name"]
                    )
                    text_msg = await MyRouter.send_file_to_telegram(
                        message.chat.id, text_path, caption=lesson["name"]
                    )

                    if audio_msg and text_msg:
                        # Сохранение file_id
                        audiofile_id = audio_msg.audio.file_id
                        text_file_id = text_msg.document.file_id
                        await add_file_id(
                            session, lesson["name"], audiofile_id, text_file_id
                        )
                    else:
                        await message.answer("Не удалось загрузить файлы.")
        else:
            await message.answer("Нет данных по этой теме.")

так же попробовал загружать файлы с помощью ORM Django но так же потерпел неудачу, использовал несколько подходов но ничего не получилось, там по большей части пользовался GPT и не смог сильно вникнуть (откровенно говоря, у меня еще маловато опыта). В общем возможно кто то уже делал, что то подобное или может у вас есть идеи как реализовать эту задачу используя другой подходу, слезно прошу подскажите, а то уже все голову сломал. З.Ы. проект не коммерческий поэтому важно чтоб реализация, хотя бы на первых порах была бесплатная, поэтому я и выбрал backblaze там есть обределенный бесплатный лимит


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