我有Azure Blob容器,每个容器有几百个Blob。通过REST API使用GET LIST命令查询文件列表时,我确实得到了一个列表,但它是一个包含大量附加信息的XML,例如" last modified"等等。这使得返回的列表大约每个文件500个字节。对于具有200个Blob的容器,这仅用于获取该列表的100千字节。这非常低效,特别是因为文件本身每个只有大约10千字节,我需要经常请求列表。
我没有在GET LIST的文档中看到任何选项可以返回更简单的列表。我只需要blob名称,没有完整的URL,也没有任何其他信息,尽可能小和基本。对于短文件名,每个文件只能容纳5个字节。
是否有更有效的方法从Azure Blob获取文件列表?
至于为什么我需要这个:我有一个系统,其中几个用户可以同时上传Blob,其他人不久后下载特定的Blob。
我认为有一个Web角色可以告诉用户下载什么,但是当我使用C#Blob API列出Blob中的文件时,不会从Blob中获得相同下载成本的Web角色?价格是我们认真考虑的因素,因为我们期望很多用户与此互动。
答案 0 :(得分:3)
我不知道只在响应有效负载中返回blob名称的方法。但是,如果您将网络角色部署在与存储帐户相同的区域,则响应有效负载实际上不会影响价格,因为您不需要为区域内的流量付费:https://azure.microsoft.com/en-us/pricing/details/storage/