我尝试上传一个文件夹结构,其中包含一个html文件,该文件在私有的azure blob存储容器中引用该文件夹结构中的css和javascript文件。
当浏览html文件时,我希望它能够检索css和javascript文件,就像你看看它是否是一个html文件作为网站的一部分。
如果容器是完全公开的,我可以使这个工作,但是当容器是私有的并且我提供SAS令牌时,我很难达到相同的结果。
假设容器包含一个名为" main.html"的html文件。和一个名为" css / mystyles.css"的css文件; (main.html将有css文件的链接标记指向以下相对URL" css / mystyles.css")。
如果我为容器创建一个SAS令牌(为了简单起见,我们只需要调用它" mySAS")然后导航到main.html文件,附加SAS令牌,如下所示:
https://my-storage-account.blob.core.windows.net/container-name/main.html?mySAS
main.html文件将正确加载,因为SAS令牌将在末尾附加,但css文件不会,因此它将返回404。
我想我已经知道了答案,但是技术上是否可以存储和呈现html文件及其所有相关文件而不将其放在公共容器中?
我应该注意,修改html文件中指定的路径不是一个选项,因为它们不是我无法控制的文件,所以我不知道它们看起来像什么就像提前一样。
有一些(非常混乱和不受欢迎的)混合解决方案,我把它放在一个私有容器中,然后按需公开,然后将其切换回私人容器。
或者选择更极端的混合解决方案,我将其存储在私有容器中(永远不会暴露),然后无论何时请求,都将内容复制到一个短暂的公共容器中(降低风险)有人可能会在第一个混合场景中记下公共容器,然后在它可能无法为他们提供时再次访问它。)
如果可能的话,我真的更愿意使用私有容器和SAS令牌解决方案。