【发布时间】:2018-12-19 20:50:34
【问题描述】:
我遇到了一个问题。我必须在 Xamarin.Forms 应用程序中实现从 Azure Blob 存储加载多个图像的解决方案。
我想知道如何从 Azure Blob 存储帐户发送图像名称列表并获取图像列表。
谢谢!
【问题讨论】:
标签: azure xamarin.forms azure-storage azure-blob-storage
我遇到了一个问题。我必须在 Xamarin.Forms 应用程序中实现从 Azure Blob 存储加载多个图像的解决方案。
我想知道如何从 Azure Blob 存储帐户发送图像名称列表并获取图像列表。
谢谢!
【问题讨论】:
标签: azure xamarin.forms azure-storage azure-blob-storage
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);
}
【讨论】: