【发布时间】:2021-10-21 15:18:54
【问题描述】:
我有一个 API,它为给定的 blob 名称生成并返回 SAS 令牌。然后在我的前端应用程序中,我使用 API 提供的响应(凭据)以及通过浏览器直接选择的文件来处理上传。
我正在使用 blockBlobClient.uploadData 函数。这工作正常并且上传成功完成,但是我注意到 SAS 令牌被重用于作为该 blob 的一部分上传和处理的所有块(我需要为 > 1GB 的文件做好准备),因此如果我的服务器返回一个 5 分钟的过期令牌,而我的用户的连接速度很慢或部分中断,文件可能需要 5 分钟以上才能完成上传,这最终会从 Azure Blob API 向浏览器抛出错误,并且文件上传将停止。
我知道,一种方法当然是发行寿命更长的令牌来解决这些情况,或者根据文件大小设置过期时间;但我想知道是否有一种有效且不那么复杂的方法可以以某种方式延长令牌的到期时间(不会丢失我当前对该 blob 的上传进度),以便即使达到第一个到期时间,文件也可以正确上传.到目前为止还没有在文档中找到任何内容。
我将 NodeJs 用于我的后端 API,并带有 @azure/storage-blob npm 包(我也在我的前端应用程序中使用它)
希望这已经足够清楚了。
感谢您提供的任何帮助!
【问题讨论】:
标签: javascript file-upload azure-blob-storage sas-token