【问题标题】:Unable to retrieve image blob with encoded & (ampersand) in SAS part of url无法在 url 的 SAS 部分检索带有编码 &(与号)的图像 blob
【发布时间】:2021-04-28 03:57:43
【问题描述】:

我有以下形式的图像 blob url: https://my-storage.blob.core.windows.net/my-container/my-virtual-directory/image-name.png?sv=2015-12-11&sr=b&si=my-policy&sig=ZiKivSYXr63vBtdY7IsxVQ01WmrFnK%2FC9xABVrho6sY%3D&se=2016-10-04T15%3A37%3A11Z

我在我的 html 编辑器的 tag 中使用这个图像源。 问题是当 url 被编码 & 被 & 替换并且我的图像不能从该 url 获得之后。我尝试直接在浏览器中执行此操作(将任何 & 替换为 &)并返回响应“服务器无法对请求进行身份验证。确保 Authorization 标头的值正确形成,包括签名。”

为什么会这样?可能有什么解决办法?

【问题讨论】:

  • 将 & 替换为 & 是什么意思?能否提供一些代码sn-p进行介绍?
  • 到 &我使用summernote html编辑器,并在图像上传时对src进行编码(&替换为&),这会使图像损坏。
  • 我刚刚尝试在我的一个存储帐户中使用其中一张图片,效果很好。我看到所有的& 都被& 替换了,这并没有造成任何问题。当您获取 SAS URL 并将其直接放入浏览器的地址栏中时会发生什么?你能在浏览器中看到图片吗?

标签: html azure azure-storage azure-blob-storage url-encoding


【解决方案1】:

我想您指的是该工具正在转义某些字符并替换为 html 安全字符,例如 &。有关 HTML 转义字符的更多信息,请参阅W3 doc

您可以做的一件事是通过 URL 缩短服务(例如 https://goo.gl/)缩短 Azure URL,然后将其放入 HTML 编辑器中。

【讨论】:

    【解决方案2】:

    这仍然是导出的共享访问存储 (SAS) URI 的问题。只需在整个 URL 周围添加一个单引号,在 & (与号)周围添加(双引号)。这应该可以在 powershell 中使用。

    【讨论】:

      猜你喜欢
      • 2019-12-28
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      • 2021-01-31
      相关资源
      最近更新 更多