2

快速的问题。我一直在阅读大量关于azure blob/file/disk存储选项的信息,并且我有一个如此简单的存储需求,以至于我对什么是最佳选择感到困惑。我正在阅读的大部分信息都完全在我的头上。Azure Blob vs文件与磁盘存储

我希望有人能够将视野范围缩小到更合理的利弊集。我的情况如下:

我正在构建一个正在进行图像处理的API。简而言之,用户通过特定的文本对特定图像进行获取请求,然后我的API对其进行处理并将图像吐出。目前,我正在Azure模拟器上运行,因此图像文件(大约3个PNG)将从本地路径中拉出。我将很快部署到一个活的azure服务器,因此我将要将这些图像文件存储在某个位置(而不是将它们放入实际的应用程序文件中)。

我的理解到目前为止,磁盘和文件选项将允许我保持我的代码相对相同,仍然使用通用文件I/O加载图像路径。这些磁盘只允许数据访问这个API正在运行的机器上,这很好,但我不知道是否有任何好处,让硬盘有这种限制。 blob存储将要求我改变这一点,但代码不是很多,我不认为这太难。

每个不同的选择都有很多细节,所以我很难做出决定:对于我的情况,三者之间是否有明确的选择?它是否归结为任何更容易?性能和成本是首要任务,那么这些方面的优缺点是什么?这确实需要能够扩展到更多的图像,但只能在一定程度上。我可以看到它在未来几年内从3张图像到10张图像,而不是从3张到1000张。

+0

你要找的Blob存储。文件和磁盘是增加一些功能的结构,不需要以简单和约束为代价。将来如果您需要缩小Blob存储的限制范围,则可以在多个帐户之间分割图像(例如,图像a * -k *放在一个帐户中,其余图像放在另一个帐户中) –

回答

4

你的选择是完全取决于你,但客观:

  • Azure的文件存储可以安装为SMB卷(让你的应用程序的所有实例可以使用它)。注意:目前Web应用程序不支持这种功能 - 您只能通过API写入文件共享,而不是通过连接的磁盘。 Azure文件存储卷每个支持5TB,吞吐量最大。每股60MB /秒。它由Azure blob存储支持(所以,与blob一样耐用)。
  • Azure磁盘又是blob-backed(页面斑点),每个磁盘高达1TB。每个磁盘可安装到单个VM。吞吐量高于文件存储(每个blob 60 /秒)。如果没有自己的解决方案来同步数据,则无法在虚拟机之间共享。一旦安装和格式化,就像任何其他本地文件一样可访问(例如,不对您的应用程序进行任何修改)
  • Azure blob:每个存储帐户最多500TB,每个块blob可达到 200GB 4.77TB。通过REST API/SDK访问,不可安装为磁盘/驱动器。在不修改应用的情况下,您需要确保将blob内容复制到本地磁盘以对内容执行操作(不能仅将blob作为文件打开并进行修改)。

编辑,以反映较大的块大小斑点,介绍2016年12月

+1

只需添加10GB的数据,它与你将采取的路线完全无关,只需使用最方便的一切。顺便说一下,这是一个副本\粘贴?你如何在这个世界上设法输入这么快? – 4c74356b41

+0

如果OP扩展到多个实例并希望从任何实例访问任何对象(使连接的磁盘不太可取),这是相关的,因为它们与特定实例关联。 –

+1

没有复制粘贴 - 只是大量的咖啡。 :) –