Azure 存储中可存储的文件数量是否有限制?
我担心将所有上传的内容存储在一个目录中,并想知道是否应该以某种方式将它们分片到目录集合中。
我搜索过文档但找不到有关此内容的任何内容。
答案1
Windows Azure 存储(我假设您指的是 blob)对您可以存储的对象数量没有限制。它仅受每个存储帐户 200TB 上限的限制。并且您可以在订阅中拥有多个存储帐户(每个存储帐户都映射到一个命名空间,例如mystorage.blob.core.windows.net
)。
表存储也是如此:表的数量或每个表的实体数量没有限制。只是有 200TB 的限制。
现在,就目录go:Blob 存储由 组织namespace.blob.core.windows.net/containername/blobname.ext
。这些并不是真正的目录。如果您想要真正的文件系统目录,则需要在 blob 中设置磁盘(基本上是格式化为 ntfs / ext3 / ext4 等的 vhd)并安装到您的 OS 磁盘。磁盘限制为 1TB(页面 blob 的最大大小)。完成此操作后,您将拥有一个完整的文件系统可以写入。但请注意:一次只能将一台 VM 连接到驱动器,因此如果您尝试设置文件共享,这并不理想(直接 blob 存储更适合这种情况,或者您需要为自己设置 smb 服务器)。
关于 Azure 存储还有一件事:您不必担心分片;这是一个大规模持久数据存储系统。每个 blob 都位于其自己的逻辑分区中,存储服务会根据需要组织/重新组织存储。这是您无需担心的事情。我唯一建议不要将所有对象存储在单个容器中,因为如果容器中有数万个对象,则枚举容器中的 blob 可能需要一段时间。我通常不枚举容器,因为我通常将 blob uri 存储在另一个数据库中作为元数据(可能在 SQL 存储或 MongoDB 文档存储中)。
答案2
您可以在以下页面中找到有关 Azure 存储限制和性能的所有信息:https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/#storage-limits
我认为这是 Azure 中有关 Blob、表、队列和文件的最完整资源 :-)
问候
斯坦尼斯拉斯