Как при помощи API телеграма работать с файлами больше 20МБ?
Я хочу при помощи телеграм-бота считывать только часть большого файла. Для этого я использую следующих код:
def download_file_range(file_id, start_byte, end_byte):
def convert_bytes_to_utf8(byte_string):
discarded_bytes = 0
while discarded_bytes < 10 and len(byte_string) > 0:
try:
text = byte_string.decode('utf-8')
return text
except UnicodeDecodeError:
#print(type(byte_string))
if discarded_bytes%2==0:
byte_string = byte_string[1:]
else:
byte_string = byte_string[:-1]
discarded_bytes += 1
return ''
file_info = bot.get_file(file_id)
file_path = file_info.file_path
# Получение URL файла
file_url = f'https://api.telegram.org/file/bot{TOKEN}/{file_path}'
# Скачивание только указанной части файла
headers = {'Range': f'bytes={start_byte}-{end_byte}'}
response = requests.get(file_url, headers=headers, stream=True)
#print(response.content)
if response.status_code == 206: # Проверка успешности запроса
return convert_bytes_to_utf8(response.content)
return ''
Он считывает из текстового файла только символы из указанного диапазона байтов. Проблема в том, что это не работает с файлами больше 20МБ. Подскажите, как реализовать то же самое только для файлов 2-4 Gb? Возможно, используя аккаунт человека, а не бота.