使用Windows Azure BLOB而不是文件夹

时间:2012-01-06 08:40:33

标签: c# azure

  

可能重复:
  How to create a sub container in azure storage location

我想将应用程序迁移到Windows Azure下工作。在应用程序中,我将文件上传到服务器上的某个文件夹。此文件夹包含其他嵌套文件夹,这些嵌套文件夹包含文件。

下面是一些例子:

  • 公司名称/ CV / CV1.docx
  • 公司名称/照片管理/ Pic1.jpeg
  • 公司名称/照片管理/ Pic2.jpeg

现在在Windows Azure中,我想使用BLOB存储来保存我的文件。 BLOB中的问题是我有容器,我无法创建嵌套容器来组织我的文件。

任何人都可以帮我找到最佳解决方案,以便保存我的文件。

3 个答案:

答案 0 :(得分:2)

您可以使用azure blob存储来存储文件

以这种方式操作blob容器所需的唯一选项是使用以下选项:

new BlobRequestOptions { UseFlatBlobListing = true }


您将能够使用以下句子列出文件:

yourContainer.ListBlobs(new BlobRequestOptions { UseFlatBlobListing = true });

他们会像那样:

  • CompanyName / CV / CV1.docx
  • 公司名称/照片管理/ Pic1.jpeg
  • 公司名称/照片管理/ Pic2.jpeg


您将能够像这样检索您的文件:

yourBlob.DownloadToFile("CompanyName/Pics/Pic2.jpeg", new BlobRequestOptions { UseFlatBlobListing = true });


您可以在此处找到有关此选项的更多信息: Msdn Definition of the UseFlatBlobListing Property

答案 1 :(得分:1)

您可以使用Windows Azure Drives,它的工作方式与标准硬盘驱动器相同,即。 “X:”但实际上将文件存储在Azure Blob中。这样您就可以像在遗留应用程序中一样使用文件。

从此article

  

Windows Azure驱动器充当安装在服务器文件系统上的本地NTFS卷,可供角色中运行的代码访问。写入Windows Azure驱动器的数据存储在Windows Azure Blob服务中定义的页面blob中,并缓存在本地文件系统上。由于写入驱动器的数据存储在页面blob中,因此即使角色实例被回收,也会保留数据。因此,Windows Azure驱动器可用于运行必须维护状态的应用程序,例如第三方数据库应用程序。

答案 2 :(得分:1)

您可以使用云端硬盘,它可以让您在应用程序中安装NTFS虚拟硬盘。

但我认为最好的解决方案是使用BLOB storiage分隔符。您无法创建子容器,但可以使用分隔符添加blob。例如 CONTAINER_NAME /书籍/ book1.doc CONTAINER_NAME /书籍/ book2.doc CONTAINER_NAME /图片/ img1.jpg 然后,您可以通过指定分隔符列出blob。