8

快速提问。我一直在阅读有关 azure blob/文件/磁盘存储选项的大量信息,并且我有一个如此简单的存储要求,以至于我不知道什么是最佳选择。我正在阅读的大部分信息都完全超出了我的想象。

我希望有人能够将视野缩小到更合理大小的优点/缺点。我的情况如下:

我正在构建一个进行图像处理的 API。简而言之,用户对带有特定文本的特定图像发出获取请求以在顶部打印,我的 API 对其进行处理并吐出图像。目前我在 Azure 模拟器上运行,因此图像文件(大约 3 gigs 的 PNG)是从本地路径中提取的。我很快就会部署到一个实时的天蓝色服务器,所以我想将这些图像文件存储在某个地方(而不是将它们放在实际的应用程序文件中)。

到目前为止,我的理解是磁盘和文件选项将允许我保持我的代码相对相同,仍然使用通用文件 I/O 来加载图像路径。磁盘将只允许访问运行此 API 的机器上的数据,这很好,但我不知道拥有磁盘是否有任何好处,这会施加此限制。Blob 存储需要我更改它,但没有太多代码,我预计这不会太困难。

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

4

1 回答 1

16

您选择哪个完全取决于您,但客观地说:

  • Azure 文件存储可以装载为 SMB 卷(以便应用程序的所有实例都可以使用它)。注意:目前 Web 应用程序不支持此功能 - 您只能通过 API 写入文件共享,而不是通过附加磁盘。Azure 文件存储卷每个最多支持 5TB,吞吐量最大。60MB/秒跨共享。它由 Azure blob 存储提供支持(因此,与 blob 一样持久)。
  • Azure 磁盘再次支持 blob(页 blob),每个最多 1TB。每个磁盘都可以挂载到单个 VM。吞吐量高于文件存储(每个 blob 60/秒)。如果没有您自己的同步数据解决方案,则无法跨 VM 共享。一旦安装并格式化,就可以像任何其他本地文件一样访问(例如,无需修改您的应用程序)
  • Azure Blob:每个存储帐户最多 500TB,每个块 Blob 最多200GB 4.77TB。通过 REST API/SDK 访问,不能作为磁盘/驱动器安装。在不修改您的应用程序的情况下,您需要确保将 blob 内容复制到本地磁盘以对内容执行操作(您不能只将 blob 作为文件打开并进行修改)。

编辑以反映更大的块块大小,于 2016 年 12 月推出

于 2016-12-13T16:56:40.087 回答