gpt4 book ai didi

azure - approot 或sitesroot 中的手动文件系统更改是否在实例之间同步?

转载 作者:行者123 更新时间:2023-12-03 06:05:19 24 4
gpt4 key购买 nike

我有一个网络应用程序,可以接收用户上传的文件。这些文件存储在 Web 服务器的目录中。其他用户可以下载这些文件。我正在自定义此应用程序以在 Windows Azure 上进行迁移。在Windows Azure 上,这些文件存储在sitesroot 和approot 中。Windows Azure 是否自动同步这些更改,还是我应该手动同步它们?也许,用这样的方法来存储文件并不合适?

最佳答案

@Igorek 的回答很好。只是想补充一点。您的每个角色实例完全独立运行。从本质上讲,角色实例就是 Windows 2008 Server。如果您有 5 个 Web 角色实例,则有 5 个虚拟机正在运行,每个虚拟机都有自己的本地存储。

虽然您可以使用本地存储,但它是每个虚拟机实例的单独存储,并且它是非持久性的(意味着如果磁盘崩溃,您的数据就会消失)。

正如 @Igorek 建议的那样,Blob 存储独立于您的角色实例。您可以从任何地方(从任何角色实例,甚至从本地应用程序)访问它。 Blob 存储是按容器组织的,每个 Blob 最大可达 200GB。但最重要的是:它持久:在数据中心内进行三重复制,并地理复制到相邻的数据中心。

只要您的存储帐户与应用程序位于同一数据中心,访问速度就会非常快(每个 blob 大约 60MB/秒)。此外,您还可以将单个 blob(或容器)设置为公共(public)私有(private)。公共(public) blob 非常适合 CSS、图像或您可能想要在网页上呈现的任何其他内容。它们可以通过 URI 访问,例如:

https://myapp.blob.core.windows.net/images/logo.png

使用这种类型的 URI,您可以将其嵌入网页中,浏览器现在将直接从存储中检索这些图像,完全绕过您的 IIS Web 服务器,从而减轻您的角色实例的负载。减轻服务器的足够负载,您最终可能会减少实例数量。

现在,对于私有(private) blob,外界无法看到它们;您需要存储帐户 key 才能访问这些内容。对于您的网络服务器来说,这一切都是透明的。您可以快速将数据加载到 blob、将 blob 下载到本地存储、向最终用户提供内容......就像从本地磁盘提供内容一样。如果您需要对某个文件进行操作,该文件必须位于磁盘上,您可以先将其下载到本地存储,然后再从本地存储中执行操作。

关于私有(private) blob 的另一件事:您可以通过在查询字符串上使用共享访问签名对 URL 进行编码来授予对这些 blob 的临时访问权限。这是使用您的存储帐户 key 进行签名的,并授予最多一小时的访问权限。例如,如果您的最终用户拥有其他人无法访问的特定于帐户的 pdf,则您可以选择提供此内容。要么:

  • 将私有(private) Blob 从 Blob 存储下载到本地存储,然后通过 IIS(或任何备用 Web 服务器)将其发送回浏览器,或者
  • 返回私有(private) blob 的链接,使用共享访问签名进行编码(具有一些短 TTL 过期时间,可能为 5 分钟),并让最终用户从浏览器访问该 blob(例如,通过链接单击) ,然后直接从 Blob 存储下载 Blob,绕过您的角色实例。

关于azure - approot 或sitesroot 中的手动文件系统更改是否在实例之间同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762565/

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