如何在Azure中存储文件

use*_*076 3 c# azure azure-storage-blobs sql-server-2012

我们每年需要存储~50k文件.每个文件为0.1-5mb,转换为5gb - 250gb范围.文件是:jpg,avi,pdf,docx等.

我们过去常常只在sql server中存储文件BLOB,但我想这不是最好的想法,因为数据库在2年内会很大.

存储数据的最佳方法是什么?

我在那里看到了很多不同的选项,无法弄清楚从哪里开始:Azure存储,Azure SQL等.在新版本的SQL服务器中也有一些混合版本.

Mar*_*eke 5

我对多个系统使用以下方法.

  • Azure存储文件.如果存储专有信息,您可以创建多个容器和访问级别.
  • Azure CDN用于从Azure存储中提供静态内容
  • Azure DB作为数据库引擎

在Azure DB中,我存储了文件的路径,并在我的应用程序中进行了一些额外的处理,以便如何访问文件以构建从中提供文件的最终URL.这是由于CDN在自定义域上缺乏SSL支持.

如果您需要示例或更多信息,请告诉我.我坐在机场,所以提供一个稍微不那么详细的答案.


Dav*_*gon 5

正如@Martin在他的回答中提到的,Azure存储是可行的,特别是因为:

  • 访问独立于任何VM,服务,数据库等.
  • 存储是持久的 - 在一个区域内进行三重复制,并且可选地进行地理复制
  • 单个blob可能高达200GB,存储容量可达500TB

Azure还提供文件服务,它本质上是一个位于blob之上的SMB共享.

虽然Azure中有数据库服务(SQL数据库服务和文档数据库),但您会发现这些服务并未真正针对大型二进制数据存储进行优化.它们针对元数据进行了更优化.您当然可以在每个数据中存储二进制数据,但您需要担心存储限制.

您也可以通过虚拟机以及附加的磁盘(再次由持久的blob存储支持)启动您自己的数据库解决方案.虚拟机支持最多32个连接到给定VM的1TB磁盘,无论是普通blob还是"高级"基于SSD的blob(每个高级磁盘支持高达5000 IOPS).您选择哪种数据库解决方案完全取决于您; 没有"最佳"解决方案.