我遇到了问题。我必须实现一种解决方案,以便在Xamarin.Forms应用程序中从Azure Blob存储中加载多个图像。
我想知道如何发送图像名称列表以及如何从Azure Blob存储帐户获取图像列表。
谢谢!
答案 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);
}