У меня есть сервер, который связывается с S3, и я хочу подавать mp3-файлы в браузер клиента, не загружая их на сервер. Для доступа к файлам требуется аутентифицированный пользователь, поэтому все они являются частными.
Я также не уверен, что такая функциональность находится в коде сервера или может быть реализована с помощью JS.
Мой вопрос: как правильно это сделать и как?
Мой код фляги работает следующим образом:
@app.route('/audio')
def audio():
s3 = boto_session.client("s3", region_name='us-west-2')
file_name = 'some_file_on_s3'
download_path = './static/' + file_name
bucket_name = 'some_bucket'
s3.download_file(bucket_name, file_name, download_path)
return render_template('audio.html', file_source=file_name)
И мой файл 'audio.html' выглядит так:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<audio id="t-rex-roar" controls src="{{'./static/'+file_source}}">
Your browser does not support the
<code>audio</code> element.
</audio>
</body>
</html>