Serialization Telethon-如何序列化消息中的文件以便稍后发送?

Serialization Telethon-如何序列化消息中的文件以便稍后发送?,serialization,deserialization,telethon,Serialization,Deserialization,Telethon,在我的telethon项目中,我需要从一些私人频道接收消息,然后将这些消息的相关信息存储在数据库中,以便在以后发送到不同的频道。我可以对消息本身、消息是否是对另一条消息的回复等执行此操作。我的问题是如何对文件(如果有)执行相同操作 我希望稍后将在通道A中收到的相同消息发送到通道B,因此必须序列化所有文件以将其存储在数据库中。我想知道如何实现这一点,在文件上存储字符串表示,然后如何将该字符串表示再次转换为文件 我从telethon消息中获得的消息对象的结构如下: {'_': 'MessageMed

在我的telethon项目中,我需要从一些私人频道接收消息,然后将这些消息的相关信息存储在数据库中,以便在以后发送到不同的频道。我可以对消息本身、消息是否是对另一条消息的回复等执行此操作。我的问题是如何对文件(如果有)执行相同操作

我希望稍后将在通道A中收到的相同消息发送到通道B,因此必须序列化所有文件以将其存储在数据库中。我想知道如何实现这一点,在文件上存储字符串表示,然后如何将该字符串表示再次转换为文件

我从telethon消息中获得的消息对象的结构如下:

{'_': 'MessageMediaPhoto', 'photo': {'_': 'Photo', 'id': 4938497802787465505, 'access_hash': -1688573292593521174, 'file_reference': "b'\\x04E-jJ\\x00\\x00\\x00\\x04`\\x90[\\xe6\\xc1ES_\\xc5\\xbd\\x1c@\\x0c\\t\\xea\\x9a\\x19F\\xa9\\xb3'", 'date': '2021-05-03 20:11:06+00:00', 'sizes': [{'_': 'PhotoStrippedSize', 'type': 'i', 'bytes': 'b"\\x01(\\x16\\xd1\\xd9\'L\\xb0\\xf7\\xdfY:\\x92/\\xdb1$\\x84\\x1d\\x83\\xd4\\xe7\\xadj\\x15}\\xdc\\x17\\xeb\\xfd\\xf1U\\xe5(\\x97L[\\xefy`\\r\\xdc\\x9e\\xf4\\xd2\\xb8^\\xc6<\\xa1@\\x049$\\xfb\\x1a*\\xec\\xcd\\x1c\\xd1\\xaa\\xb6\\xdd\\xe0\\xf3\\xc6\\xda*\\x94<\\xc1\\xb3[jg9\\x7f\\xfb\\xe4\\xff\\x00\\x85P\\xbd\\x964\\xbb\\xc9\\x07\\xee\\x81\\xd0\\xd6\\x86\\xc8I\\xfb\\xbc\\xfd\\rQ\\xbb\\x8d\\xcd\\xc01\\xc2\\xec\\xa1@\\x07\\xff\\x00\\xd7P4\\xdawE9$\\x8eF\\xc4\\x8b\\xb7\\x1d2\\r\\x15,\\xd1K \\x03\\xcbn9\\xa2\\x9d\\x97q\\xb9\\xbe\\xc6\\x99B$,\\x11s\\x9c\\xf4\\xff\\x00\\xebRM\\x92A\\xe8q\\xda\\x8a(J\\xe47a\\xaa\\xb9\\x18\\xdd\\x8a(\\xa2\\x96\\xda\\x06\\xfa\\x9f"'}, {'_': 'PhotoSize', 'type': 'm', 'location': {'_': 'FileLocationToBeDeprecated', 'volume_id': 806529124, 'local_id': 432736}, 'w': 173, 'h': 320, 'size': 22179}, {'_': 'PhotoSize', 'type': 'x', 'location': {'_': 'FileLocationToBeDeprecated', 'volume_id': 806529124, 'local_id': 432737}, 'w': 432, 'h': 800, 'size': 82795}, {'_': 'PhotoSizeProgressive', 'type': 'y', 'location': {'_': 'FileLocationToBeDeprecated', 'volume_id': 806529124, 'local_id': 432734}, 'w': 518, 'h': 960, 'sizes': [6255, 8444, 59238, 61659, 64084]}], 'dc_id': 1, 'has_stickers': False, 'video_sizes': []}, 'ttl_seconds': None}

{u':'MessageMediaPhoto','photo':{u':'photo','id':49384978027874655505,'access\u hash':-1688573292593521174,'file\u reference':“b'\\x04E jJ\\x00\\x00\\x00\\x04`\\x90[\\xe6\\xc1ES\\\xc5\\xbd\\x1c\\\x0c\\t\\xea\\x9a\\x19F\\xa9\\xb3','date','2021-05-03+20:00'\\x00\\'x00\'s'''''.\x01字节:'(\\x16\\xd1\\xd9\\L\\xb0\\xf7\\xdfY:\\x92/\\xdb1$\\x84\\x1d\\x83\\xd4\\xe7\\xadj\\x15}\\xdc\\x17\\xeb\\xfd\\xf1U\\xe5(\\x97L[\\xefy`\\r\\xdc\\x9e\\xf4\\xd2\\xb8^\\xc6)唯一的长期解决方案是下载介质,以便以后重新上传。您可能还有一些“存储空间”“您可以在其中转发所有内容,以便从那里重新蚀刻和重新发送媒体。