Как обрабатывать и отправлять различные типы файлов (изображения, видео, аудио, PDF, документы) в Django Chat App с помощью WebSockets и Django REST Framework
Я работаю над приложением для чата, где мне нужно обрабатывать и хранить различные типы файлов, такие как изображения, видео, аудио, PDF и документы, используя Django и Django REST framework. У меня есть потребитель WebSocket с такими событиями, как подключение, отключение и получение. В событии receive я пытаюсь обработать видеофайлы. Вот упрощенная версия моего кода:
# consumers.py
async def video(self, event):
stream = File(BytesIO(event['file']), name=event['file_name'])
data = JSONParser().parse(stream)
event['file'] = data
await self.send(text_data=json.dumps(event))
# serializers.py
from drf_extra_fields.fields import Base64FileField,
Base64ImageField
import filetype
class MyBase64FileField(Base64FileField):
ALLOWED_TYPES = ['pdf', 'docx','doc','mp3','mp4','mov']
def get_file_extension(self, filename, decoded_file):
extension = filetype.guess_extension(decoded_file)
return extension
def to_internal_value(self, data):
if isinstance(data, str):
return super().to_internal_value(data)
return data
class MessageSerializer(serializers.ModelSerializer):
image = Base64ImageField(required=False)
file = MyBase64FileField(required=False)
class Meta:
model = ChannelMessages
fields = '__all__'
I'm facing issues with sending video files over the WebSocket. What changes do I need to make in my code to handle video files properly and send them over the WebSocket? Additionally, I'm looking for a solution that allows me to handle and send other file types like images, audios, PDFs, and documents as well.