在 Xamarin 移动应用程序中显示存储在 Azure 存储中的 Blob/照片

Posted

技术标签:

【中文标题】在 Xamarin 移动应用程序中显示存储在 Azure 存储中的 Blob/照片【英文标题】:Display Blobs/Photos stored in Azure-storage in Xamarin Mobile Application 【发布时间】:2019-10-15 15:13:33 【问题描述】:

尝试开发一个 Xamarin Forms 移动应用程序,该应用程序通过 api 显示存储在 Azure-Storage 容器中的 blob。

当前流程是这样的 API > Azure-Storage Blob > 在 Xamarin 移动应用程序中显示。

使用存储帐户密钥连接到 Azure 存储。

问题是,当容器上的公共访问设置设置为“私有”时,Blob 不会显示在移动应用程序中。 如果容器公共访问设置设置为“blob”,则照片将显示在 xamarin 移动应用中。

照片用于说明目的。Photo of issue

代码如下。

string storageConnectionString 
Environment.GetEnvironmentVariable("storageconnectionstring");

CloudStorageAccount storageAccount;
if (CloudStorageAccount.TryParse(storageConnectionString, out 
storageAccount))

// If the connection string is valid, proceed with operations against 
Blob storage here.
...

else

//Error

[enter image description here][1]CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();

如何在移动应用程序中显示 blob 的同时将容器设为私有?

【问题讨论】:

您似乎遗漏了很多有关如何访问 blob 数据和显示图像的相关代码。如果我们看不到您在做什么,我们就无法告诉您出了什么问题 【参考方案1】:

我认为您可能使用了错误类型的 Azure blob 存储连接。

您需要使用共享密钥。

shared key authentication with azure blob storage

您需要生成一个新的共享访问签名。

create a new SAS

我希望这会为您指明正确的方向。

【讨论】:

【参考方案2】:

非常感谢@justjoshin 的帮助。

SAS 就是答案。从那里您可以生成一个 SAS 令牌,即使容器是私有的,您也可以将其附加在 blob url 之后以显示它。

希望这对其他人有帮助。

最好的

【讨论】:

以上是关于在 Xamarin 移动应用程序中显示存储在 Azure 存储中的 Blob/照片的主要内容,如果未能解决你的问题,请参考以下文章

如何在Xamarin viewcell或Grid或某处显示默认文件扩展名图标?

在 Xamarin.Forms 中存储应用程序数据的最佳 Environment.SpecialFolder 是啥?

可移动存储 Hololens 2、unity 和 xamarin uwp 的问题

Xamarin表示Android导航栏向下移动

在 Xamarin 的 SQLite 数据库中存储和检索数组

AWS 弹性 beanstalk 可以配置或移动到另一个 AZ