使用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的问题是我有容器,不能创建嵌套容器来组织我的文件。
有人能帮我找到最好的解决方案来保存我的文件吗。
您可以使用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驱动器可以用于运行必须维护状态的应用程序,例如第三方数据库应用程序。