Azure Blob存储与文件服务对比


130

请纠正我的错误。从到目前为止对该主题的阅读来看,在我看来,Azure Blob存储和文件服务都提供了存储文件和文件夹的功能(我知道blob可以存储任何二进制对象,但是可以序列化任何对象二进制流只是一天结束时的文件),它具有模仿文件系统的分层结构。

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

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


6
您是否已阅读Azure存储团队的博客文章:blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/…?请向下滚动至说明何时使用哪种服务的部分。
Gaurav Mantri-AIS

3
是的,我在发布之前阅读了该文章。我现在还处于思考的早期阶段,而我的理解还不够完善。我还是很困惑。我了解所有已读文章中写的所有内容,但是我想弄清楚如果要为我正在设计的应用程序存储用户拥有的文件,最好使用什么。
Water Cooler v2

我猜它归结为您要使用这些用户文件做什么?它们会以某种方式流回(通过Web浏览器等)还是会进一步处理?如果是以前的版本,则Blob存储是有意义的。如果是后者,则文件服务才有意义。
Gaurav Mantri-AIS

1
问题是:我想让用户上传和下载自己的文件,并且还与联系人组中的其他人共享其中的一些文件(他们只能下载/阅读)。我可以将共享访问签名(SAS)与Blob存储一起使用,但这不能满足我的“共享”要求。我倾向于一种解决方案,其中我的应用程序/服务执行所有身份验证,并且不向用户公开实际的存储资源。在这种情况下,对我来说,文件服务和Blob存储都可以做同样的事情。没有人比另一个给我更多的安慰。
Water Cooler v2

@ WaterCoolerv2你能帮我蔚蓝文件存储器VS Blob存储你是怎么得出的结论之间进行选择
Heemanshu布哈拉

Answers:


109

有几个问题要解决:

  1. 您不能将Azure Blob存储作为本地共享安装在虚拟机上。
  2. Azure Blob存储不是容器之外的分层结构。您可以添加其中包含/或\字符的文件,许多读取Blob存储的应用程序会将其解释为文件夹。
  3. Azure文件服务为Azure Blob存储提供了SMB协议接口,该接口解决了(1)的问题。

如果要开发新的应用程序,则可以直接将本机Azure API利用到Blob存储中。

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

请注意,Azure File Service不支持一些SMB协议功能。


1
非常感谢,西蒙。关于您的回复的几件事。最终,我希望得到最终结果。从这个角度来看,我提出了这个问题。从最终结果的角度来看,列表中的参数#1和#3不相关。我根本不跟你吵架。:-)您的回答非常有帮助。我只是想告诉您导致我提出这个问题的思考过程。第2个参数不是问题,因为它提出了一个问题,并表示这不是问题。假设我想存储用户拥有的文件,为什么要选择一个文件?
Water Cooler v2

请参阅编号列表后面的两点-应该作为您的指南。
西蒙W

1
@SimonW-指南之后的两点被称为“实现方法”。但是,它们不是绝对的。在这种情况下,它们更像是建议。在某些情况下,即使使用新应用程序,您也不想直接使用Azure API。同样,在某些情况下,您可能需要重新处理现有应用程序以使用Azure API。
David Makogon 2014年

它们之间的IOPS性能是否有差异?
LaPuyaLoca '16

@SimonW-您能详细说明上述第3点吗?这是将Blob挂载为SBM文件共享还是以某种方式将其作为“磁盘”访问的方法?
尼尔·韦彻

38

要考虑的其他一些事项:

  • 定价:Blob存储比文件存储便宜得多。
  • 可移植性:如果您将来决定迁移到diff平台,则使用blob存储可能需要更改应用程序代码,但是使用文件存储,您可以将应用程序迁移到支持SMB的任何其他平台(假设您正在使用本机文件系统API)您的应用)

4
这里的价格是一个很大的因素(目前大约相差5倍),并且还值得一提的是文件存储的5TB限制。
TZHX

旧帖子,但是我今天第一次读。默认情况下,标准价格层上有5TB的限制,但是可以通过切换到100TB的限制来更改。注意*在帐户上启用大文件共享是Azure存储帐户上不可逆的过程。docs.microsoft.com/azure/storage/files/...
Ruwd

10

Azure文件服务的目标更多是内部文件处理。对于内部,我的意思是将目录安装到云中或本地的VM上,以便可以在后端(基于SMB的协议)中加载它。

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

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


嗨,Clemens Schotte,Blob存储允许通过URL下载是什么意思?您的意思是文件存储不提供URL
Heemanshu Bhalla

1
自发布这些文章以来,有些事情已经发生了变化,但是File Service确实支持通过URL和其他REST API(docs.microsoft.com/en-us/azure/storage/common/…)下载。此外,安全性似乎在存储帐户级别,因此在Blob和文件服务(docs.microsoft.com/zh-cn/azure/storage/common/…)之间应该非常相似。
KJ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.