音频文件的 Azure SAS 到期

Posted

技术标签:

【中文标题】音频文件的 Azure SAS 到期【英文标题】:Azure SAS expiry for audio files 【发布时间】:2021-07-13 05:42:59 【问题描述】:

我们的音频文件存储在 Azure blob 存储中。

为用户提供播放音频文件的 SAS URL 链接。 SAS URL 的有效期为 5 分钟。但是,对于长音频文件(比如 10 分钟),音频流在 5 分钟后播放音频时停止,因为令牌过期,这是正确的做法。

但是,解决此问题的正确方法是什么?客户端是否在到期前向后端请求新的 SAS 令牌?

【问题讨论】:

【参考方案1】:

SAS 令牌基本上需要在一定的时间间隔内不断刷新,以确保没有连接中断。因此,请为此保留重试机制。

【讨论】:

【参考方案2】:

对于 SAS 令牌到期,同时缓冲继续跟踪到期时间并更新 SAS 令牌。由于出于安全原因,您不能增加过期时间,但如果过期,请续订。

【讨论】:

【参考方案3】:

你做到了 关于缓冲和播放器的工作原理就不多说了。

    我会这样做,我会在原声带 * 2 的持续时间内发出 SAS 然后,如果您停止播放器,然后重新开始,然后获取新的 SAS 令牌,我会在播放器中添加逻辑。 我会添加错误处理并尝试在错误时获取新的令牌 URL (https://www.w3schools.com/tags/av_event_error.asp)

【讨论】:

感谢您的积分。它使用原生 html5 音频播放。 @SujishPradeep 所以这仍然适用于我写的内容。【参考方案4】:

您需要实现更新SAS token 的逻辑,该逻辑将在您的 SAS 令牌过期时起作用,然后您需要在重试逻辑中更新您的令牌。 根据您可以运行更新逻辑来跟踪令牌到期

【讨论】:

以上是关于音频文件的 Azure SAS 到期的主要内容,如果未能解决你的问题,请参考以下文章

使用 Azure.Storage.Blobs 通过 .NET Core 3.1 生成 SAS 到期令牌

使用 Azure 媒体服务进行实时音频编码

Azure Functions + Azure Batch实现MP3音频转码方案

(Azure 存储 - nodeJS)获取应用于 blob 容器和队列的 SAS 策略

浅谈Azure Storage的安全性

将 python 函数部署到 Azure 函数