Как прочитать файл в s3 Bucket с помощью django-sotrages?

У меня есть приложение 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
        

#остальная часть кода Этот код читает файл:

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].

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