Как прочитать файл в 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].