Как прочитать файл из DigitalOcean Spaces с помощью Django?

У меня есть приложение Django, которое использует DigitalOcean Spaces для хранения загруженных пользователем файлов. Затем приложение транскрибирует эти файлы и возвращает текст. Однако когда я пытаюсь прочитать файл, используя url к сохраненному файлу, происходит сбой. Вот мой views.py:

Этот код сохраняет файл в Spaces

        if form.is_valid():
            uploaded_file = request.FILES['file']

            request.session['uploaded_file_name'] = uploaded_file.name
            request.session['uploaded_file_size'] = uploaded_file.size#add to models

            session_id = str(uuid.uuid4())
            request.session['session_id'] = session_id
            
            transcribed_doc, created = TranscribedDocument.objects.get_or_create(id=session_id)
            transcribed_doc.audio_file = uploaded_file
            transcribed_doc.save()

            
            request.session['uploaded_file_path'] = transcribed_doc.audio_file.url#store url to file
            
#rest of code

Этот код считывает файл:

    file_name = request.session.get('uploaded_file_name')
    file_path = request.session.get('uploaded_file_path')#store url in 'file_path' variable
    if request.method == 'POST':
        try:
            

            if not file_name or not file_path:
                return redirect (reverse('transcribeSubmit'))
            
            audio_language = request.POST.get('audio_language')
            output_file_type = request.POST.get('output_file_type')
        
            if file_name and file_path:
                file_extension = ('.' + (str(file_name).split('.')[-1]))
                
                #open file located at DO Spaces and initiate transcription
                with open(file_path, 'rb') as f:
                    path_string = f.name
                    destination_dir =  'ai_transcribe_output'
                    transcript = transcribe_file(path_string, audio_language, output_file_type, destination_dir)
             

Я хочу транскрибировать файл непосредственно с url в DO Spaces или, если это невозможно, временно хранить копию файла локально, чтобы потом его можно было транскрибировать и удалить. Для хранения файлов я использую django-storages[s3].

Вернуться на верх