【问题标题】:Render Azure Blob content in android WebView在 android WebView 中渲染 Azure Blob 内容
【发布时间】:2016-03-07 11:43:21
【问题描述】:

我有一个存储在 Azure Blob 中的 HTML 文件,我正在尝试在我的 Android 应用程序的 WebView 元素中呈现它。我已经使用扩展名 html 存储了我的文件 - 并且可以在门户中看到文件的类型为 text/html,在我的应用程序中,我正在获取 blob 的 url 并将其传递给webView.loadURL(<blob's url>)。但我在模拟器中收到错误消息"Resource not found"

webView 中呈现 blob 内容是否是受支持的操作,或者我应该只求助于使用 blob.OpenInputStream() 从 blob 中读取内容并显示它?

【问题讨论】:

  • 您能检查一下 blob 所在容器的 ACL 吗?它不应该是Private
  • 如果我希望它是私有的,我不需要该 blob 可以公开访问。这就是我在连接字符串中提供存储密钥的原因。还是我对 ACL 的理解有误?
  • 所以您正确理解了 ACL “funda” :)。在这种情况下,您需要做的是创建一个至少具有读取权限的共享访问签名,并使用该 SAS URL 而不是 blob URL。
  • 这就像一个魅力。非常感谢@GauravMantri!今天要了解SAS!你真的可以把这个添加为答案,以便我接受吗?

标签: android azure webview azure-blob-storage


【解决方案1】:

如果您希望通过仅指定其 URL 来显示 blob 的内容,有两种方法可以实现:

  1. 更改容器 ACL:您需要将保存 Blob 的 Blob 容器的 ACL 更改为 BlobContainer。这样就可以使用其 URL 匿名访问 Blob。
  2. 使用共享访问签名:如果您想将容器的 ACL 保留为 Private,那么您的其他选择是使用 Shared Access Signature (SAS)。 SAS 提供对存储资源(Blob、表、队列、文件等)的时间限制权限。在您的情况下,您需要创建一个至少具有 Read 权限的 SAS。获得 SAS 后,只需将其附加到您的 blob URL,您就应该能够从私有容器访问该 blob。有关 SAS 的更多详细信息,请参阅此链接:https://azure.microsoft.com/en-in/documentation/articles/storage-dotnet-shared-access-signature-part-1/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 2020-12-25
    相关资源
    最近更新 更多