Azure Blob存储-发送图像名称列表并获取图像列表

时间:2018-07-11 18:06:53

标签: azure xamarin.forms azure-storage azure-storage-blobs

我遇到了问题。我必须实现一种解决方案,以便在Xamarin.Forms应用程序中从Azure Blob存储中加载多个图像。

我想知道如何发送图像名称列表以及如何从Azure Blob存储帐户获取图像列表。

谢谢!

1 个答案:

答案 0 :(得分:2)

Azure Blob没有强大的查询\搜索故事。如果您知道该容器,则始终可以遍历该容器中的blob,但这将效率非常低并且不理想。您还可以使用Azure搜索为Blob存储(及其内容)建立索引,但是对于您的用例而言,我发现这种说法有些过头了。

我的建议是将对Blob的引用存储在可搜索的数据源中。如果您已经为您的应用准备了数据源(例如SQL),我会使用它。

一种廉价的获取此数据源以供以后查询的方法是使用Azure函数或逻辑应用程序在创建新的Blob时触发,并存储以后需要找到它的数据(例如文件名)以及Blob参考。表存储是一种非常便宜的方法,或者您可以使用任何喜欢的数据存储。然后,您可以在Azure Functions(或您选择的主机)中托管API终结点,您的Xamarin应用程序可以在其中传递文件名并取回结果。

使用Azure Functions,用于写入表存储的blob触发器的代码非常少,并且将遵循以下模式:

public static void Run(
        [BlobTrigger("mycollection/{name}")] BlobProperties blobProperties,
        [Table("blobdata")]IAsyncCollector<MyBlobDataPoco> tableData,
        string name, TraceWriter log)
    {
        var myData = new MyBlobDataPoco() { Filename = name, Container= "mycollection" };
        tableData.AddAsync(myData);

    }