Azure Blob 存储 VS 文件服务

请纠正我的错误。从我到目前为止对这个主题的阅读中,我发现 Azure Blob 存储和文件服务都提供了存储文件和文件夹的能力(我知道 Blob 可以存储任何二进制对象,但是任何序列化的二进制流最终只是一个文件)。

只有访问它们的 API 略有不同,因为文件服务允许您除了使用 REST API 之外,还可以使用 Win32 File I/O 之类的函数来查询源代码。

如果您希望应用程序存储应用程序用户所拥有的一些文件,为什么要选择一个而不是另一个呢?

72224 次浏览

有几个问题:

  1. 不能将 Azure Blob Storage 作为本地共享挂载到虚拟机上。
  2. Azure Blob 存储没有超出容器的层次结构。您可以添加包含/或字符的文件,这些文件被许多读取 blob 存储的应用程序解释为文件夹。
  3. Azure 文件服务为 Azure Blob 存储提供了一个 SMB 协议接口,用(1)解决了这个问题。

如果您正在开发一个新的应用程序,那么可以将原生 Azure API 直接用于 Blob Storage。

如果您正在移植需要共享文件的现有应用程序,那么请使用 Azure 文件服务。

请注意,Azure 文件服务不支持有一些 SMB 协议特性。

还有一些事情需要考虑:

  • 定价: Blob 存储比文件存储便宜得多。
  • 可移植性: 使用 blob 存储,如果你决定在将来迁移到一个不同的平台,你可能不得不改变你的应用程序代码,但使用文件存储,你可以迁移你的应用程序到任何其他支持 SMB 的平台(假设你在你的应用程序中使用本地文件系统 API)

Azure 文件服务更侧重于内部文件处理。对于内部目录,我的意思是将目录挂载到云中或内部虚拟机中,这样就可以将其加载到后端(基于 SMB 的协议)。

对于与最终用户(网络或应用程序)共享文件,使用 blob 存储可能更有意义,因为这可以简化通过 URL 下载和通过共享访问签名保护下载。

这篇文章分享了更多关于比较的细节(在底部) : https://blogs.msdn.microsoft.com/windowsazurestorage/2014/05/12/introducing-microsoft-azure-file-service/