从 Azure Blob 存储检索和显示视频到 Flask Python,再到 HTML/JS?

Retrieval and display Video from Azure Blob Storage, to Flask Python, to HTML/JS?

我有一个位于 ADLS Gen2 存储帐户中的 .mp4 视频文件,我试图在一个简单的 Flask webapp 中显示它。为了简单起见,我对所有 URL 进行了硬编码,直到我能够让它工作。

当我在连接字符串中输入没有SAS的URL时,网页显示:ResourceNotFoundThe specified resource does not exist. RequestId:xxxx-xxxx-xxxx-xxxx-xxxx Time:xxxx.

当我将 SAS 附加到 URL 的末尾时,我的浏览器下载了文件,但它没有在页面上显示它。

我正在尝试在浏览器中显示视频,并且能够播放它(在浏览器中)。以下是我的代码,任何输入都非常感谢!

@app.route('/playVideo/', methods=['GET'])
def playVideo():
    return render_template('playVideo.html')
{% extends 'base.html' %}

{% block content %}
<h1>Hello world!</h1>

<iframe src="https://mystorageaccount.blob.core.windows.net/video/xxx-xxx-xxx/xxx-xxx-xxx..mp4" width="853" height="480" frameborder="0" allowfullscreen></iframe>
{% endblock %}

When I enter the URL without a SAS in the connection string, the webpage displays: ResourceNotFoundThe specified resource does not exist. RequestId:xxxx-xxxx-xxxx-xxxx-xxxx Time:xxxx.

发生这种情况是因为 blob 容器的 ACL 设置为 Private。如果您想直接通过 URL 访问 blob,则需要将 blob 容器的 ACL 设置为 BlobPublic.

When I append the SAS to the end of the URL, my browser downloads the file, but it doesn't display it on the page.

请检查 blob 的内容类型 属性。十有八九,它被设置为application/octet-stream。更新 blob 属性 并将其内容类型 属性 更改为 video/mp4,这应该可以解决这个问题。