以正确的方式使用Azure blob容器?

时间:2016-09-28 18:47:18

标签: node.js azure azure-storage-blobs azure-blob-storage

我目前在我的nodejs应用中探索Azure Blob Storage,并想知道如何利用Container中的azure blob

在当前的应用设置中,我有像

这样的子部分
  • 简档
  • 社区
    • 的java
    • 的NodeJS
    • 消息

每个都有上传files的功能,最终会转到azure blob

我应该为每个部分创建container,是否有任何优势? 什么是首选方法?

https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/

  

容器:容器提供一组blob的分组。所有   blob必须在容器中。帐户可以包含无限制   容器数量。容器可以存储不限数量的容器   斑点。请注意,容器名称必须小写。

2 个答案:

答案 0 :(得分:5)

这实际上取决于您的应用程序设计;没有“正确的方法”。根据您上面发布的内容,为配置文件社区创建容器似乎是有意义的。

然后,您可以为社区下的子部分创建虚拟目录。虚拟目录实际上是blob名称的一部分,但您可以使用它来分层遍历blob,就像文件系统一样。

有关如何列出blob的示例,请参阅Azure Blob Storage Samples for Node.js

以下是有关虚拟目录的一些其他信息,来自Azure存储文档:

Blob名称可以通过包含分隔符字符(例如正斜杠(/))来模拟目录结构。虚拟目录是客户端库提供的抽象,以简化导航该目录结构。容器和blob是Azure资源,具有自己的端点,但虚拟目录是blob名称的一部分。

例如,假设您有一个绝对URI为:

的blob

https://storagesample.blob.core.windows.net/sample-container/level1/level2/level3/blob.txt

blob名称是:

1级/ 2级别/级别3 / blob.txt

作为blob名称一部分的虚拟目录是:

  • 1级/ 2级别/级别3 /

  • 1级/ 2级别/

  • 1级/

答案 1 :(得分:2)

分隔多个容器的主要优点是容器提供了很好的blob逻辑分组和安全访问边界。由于Azure Blob中的分区处于blob级别,因此在容器下访问blob的可伸缩性和并行性方面应该看不出太多差异。请参阅此主题并进行类似的讨论。 Is it better to have many small Azure storage blob containers (each with some blobs) or one really large container with tons of blobs?