使用Windows Azure BLOB而不是文件夹

本文关键字:文件夹 BLOB Windows Azure 使用 | 更新日期: 2023-09-27 18:19:32

可能重复:
如何在azure存储位置中创建子容器

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

以下是一些例子:

  • 公司名称/CV/CV1.docx
  • 公司名称/Pics/Pic1.jpeg
  • 公司名称/Pics/Pic2.jpeg

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

有人能帮我找到最好的解决方案来保存我的文件吗。

使用Windows Azure BLOB而不是文件夹

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

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

new BlobRequestOptions { UseFlatBlobListing = true }


你可以用以下句子列出文件:

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

它们会这样出现:

  • 公司名称/CV/CV1.docx
  • 公司名称/Pics/Pic1.jpeg
  • 公司名称/Pics/Pic2.jpeg


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

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


您可以在此处找到有关此选项的更多信息:UseFlatBlobListing属性的Msdn定义

您可以使用云驱动器,它使您能够在应用程序中装载NTFS虚拟驱动器。

但我认为最好的解决方案是使用BLOB存储分隔符。不能创建子容器,但可以添加带有分隔符的Blob。例如Container_Name/books/book1.docContainer_Name/books/book2.docContainer_Name/images/img1.jpg然后,您可以通过指定分隔符来列出Blob。

您可以使用Windows Azure驱动器,它的工作原理与标准硬盘驱动器类似,即"X:",但实际上将文件存储在Azure Blob中。通过这种方式,您可以像在遗留应用程序中一样处理文件。

来自本文

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