【问题标题】:Getting a more optimal list of Azure Blobs through REST通过 REST 获取更优化的 Azure Blob 列表
【发布时间】:2016-12-09 11:12:27
【问题描述】:

我有 Azure Blob 容器,每个容器有数百个 Blob。当通过 REST API 使用 GET LIST 命令查询文件列表时,我确实得到了一个列表,但它是一个包含许多附加信息的 XML,例如“最后修改”等。这使得每个文件的返回列表大约为 500 个字节。对于具有 200 个 Blob 的容器,仅用于获取该列表就需要 100 KB。这是非常低效的,尤其是因为文件本身只有大约 10 KB,而且我需要经常请求列表。

我在GET LIST 的文档中没有看到任何选项来返回更简单的列表。我只需要 blob 名称,没有完整的 URL 和任何其他信息,并且尽可能小和基本。对于短文件名,每个文件最多可以容纳 5 个字节。

有没有更有效的方法从 Azure Blob 获取文件列表?

至于我为什么需要这个:我有一个系统,其中几个用户可以同时上传 Blob,而其他用户很快就会下载特定的 Blob。

我考虑使用一个 Web 角色来告诉用户下载什么,但是当我使用 C# Blob API 列出 Blob 中的文件时,该 Web 角色是否会从 Blob 中产生相同的下载成本?价格对我们来说是一个重要的考虑因素,因为我们预计会有很多用户与之互动。

【问题讨论】:

    标签: rest azure-blob-storage


    【解决方案1】:

    我不知道在响应负载中只返回 blob 名称的方法。但是,如果您将 Web 角色部署在与存储帐户相同的区域下,则响应负载实际上不会影响价格,因为您不需要为区域内的流量付费:https://azure.microsoft.com/en-us/pricing/details/storage/

    【讨论】:

    • 感谢您的建议!仅为此使用 webrole 可能是一个不错的选择。 Azure 上的定价很难理解:因素太多(传出带宽、交易数量等)。在您提供的链接中,美国东欧和西欧的定价计算完全不同,甚至是欧洲的额外第二张桌子。很难理解在内部列出 Blob 是完全免费的还是只有带宽是免费的。
    • 区域内的带宽是免费的,您仍然需要为交易次数付费(这比数据传输带宽便宜得多)。
    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 2019-12-31
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多