我们的应用程序使用户可以通过Web浏览器上传文件。文件名将映射到GUID,blob名称将成为GUID。当用户在我们的应用程序中单击该文件时,它应该使用原始文件名而不是GUID blob名称下载到他们的文件系统(show save as等)。
我发现了这篇文章,以及描述如何通过共享访问签名下载时在blob上设置Content-Disposition的类似帖子。
Friendly filename when public download Azure blob
但是,我们的情况有点不同。我们在Container级别设置了一个SAS(从技术上讲,这被称为共享访问策略,我相信 - 在任何给定时间最多可以有5个)。下载blob时,我们只需将SAS附加到uri的末尾,然后使用...
window.location.href = blobUri + containerSAS;
...下载blob。这会下载blob,但使用GUID文件名。
我们如何才能采用适用于Container的现有SAS并将blob下载作为原始文件名?
请记住,这是一个与应用于单个blob的SAS略有不同的用例...
答案 0 :(得分:1)
我有一个解决方案。我认为这更像是一种解决方法,但是对于每个要下载的文件,我会进行服务器调用并为下载操作创建一个特殊的SAS。我可以用它设置Content-Disposition,现在名为blob的GUID正在下载其原始文件名。