gpt4 book ai didi

Azure 存储 - 公开具有文件结构的容器

转载 作者:行者123 更新时间:2023-12-02 06:49:09 26 4
gpt4 key购买 nike

我正在尝试在私有(private) azure blob 存储容器中上传一个文件夹结构,其中包含一个 html 文件,该文件引用该文件夹结构内的 css 和 javascript 文件。

当浏览 html 文件时,我希望它检索 css 和 javascript 文件,就像您看到它是否是作为网站一部分的 html 文件一样。

如果容器是完全公开的,我可以完成这项工作,但当容器是私有(private)的并且我提供 SAS token 时,我很难获得相同的结果。

假设容器包含一个名为“main.html”的html文件和一个名为“css/mystyles.css”的css文件(main.html将具有指向以下相对url“css/”的css文件的链接标记mystyles.css")。

如果我为容器创建 SAS token (为简单起见,我们将其称为“mySAS”),然后导航到 main.html 文件,附加 SAS token ,如下所示:
https://my-storage-account.blob.core.windows.net/container-name/main.html?mySAS

main.html 文件将正确加载,因为 SAS token 将附加在末尾,但 css 文件不会,因此它将返回 404。

我想我已经知道答案了,但是在技术上是否可以存储和呈现 html 文件及其所有关联文件而不将其放入公共(public)容器中?

我应该注意,修改 html 文件中指定的路径不是一个选项,因为它们是我无法控制的文件,所以我不知道它们会是什么样子。


有一些(非常困惑且不受欢迎的)混合解决方案,我将其放置在私有(private)容器中,然后按需将其公开,一段时间后将其切换回私有(private)容器。

或者选择更极端的混合解决方案,我将其存储在一个私有(private)容器中(永远不会暴露),然后每当需要时,将内容复制到一个短暂的公共(public)容器中(减少有人记下的风险)在第一个混合场景中使用公共(public)容器,然后在稍后可能不适合他们使用时再次访问它)。

如果可能的话,我真的宁愿坚持使用私有(private)容器和 SAS token 解决方案。

最佳答案

如果您的问题是关于重用 SAS token :您不能。你必须生成一个URL+SAS组合,SAS是基于URL的哈希。您不能只创建一次 SAS token ,然后将其附加到 URL。否则,没有什么可以阻止某人猜测 URL 并将一个 URL 的 SAS 附加到另一个 URL。

如果目标是拥有一个没有后端逻辑的静态网站,那么您需要公开您的内容(或者您必须预先生成所有 URL 才能正确附加 SAS)。

如果您想要动态访问(例如,您不知道将提供什么内容),则需要某种类型的后端应用程序服务器来提供内容(例如,返回带有适当的基于 SAS 的链接的新 html 页面嵌入到各种标签中)。

关于Azure 存储 - 公开具有文件结构的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40370066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com