【问题标题】:Can't create working Shared Access Signature for Azure Files无法为 Azure 文件创建有效的共享访问签名
【发布时间】:2019-05-25 01:15:33
【问题描述】:

我需要创建一个 SAS,以便创建一个 Azure SQL 扩展事件会话。事件会话需要一个通过 SAS 的文件数据存储目标,我无法创建一个有效的目标。这是我尝试过的:

  • 标识了一个不是 blob 的存储帐户;只是一般。我很确定我需要通用,所以我可以直接创建文件。
  • 在其中创建了文件共享。
  • 使用 azure 存储资源管理器,右键单击该文件共享并选择“获取共享访问签名”。
  • 已检查读取、写入、列出和创建。
  • 这给了我 URL https://mystorageacct.file.core.windows.net/xevents?st=2018-12-25T16%3A29%3A51Z&se=2018-12-29T16%3A29%3A00Z&sp=rwl&sv=2018-03-28&sr=s&sig=mysig
  • 如果我只是尝试跟踪此 URL 或在代码中使用它创建一个 CloudFile 对象,我会收到经常出现的错误,服务器无法验证请求。确保 Authorization 标头的值正确形成,包括签名。签名不匹配。使用的签名字符串是 rwl 2018-12-25T16:29:51Z 2018-12-29T16:29:00Z /file/cs7f0fbc5104d4ax435dx883/$root 2018-03-28
  • 尝试按照建议的here 添加comp=list&restype=container。不开心。
  • 确保我没有使用任何访问策略。
  • 转到 azure 门户并在存储帐户级别创建了不同的 SAS(无法在文件共享上创建它)。这给了我这个“文件服务 SAS URL”:https://mystorageacct.file.core.windows.net/?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2018-12-30T01:25:16Z&st=2018-12-26T17:25:16Z&spr=https&sig=mysig
  • 如果我尝试使用该 URL,我会得到 请求 URI 中指定的查询参数之一的值无效。我不知道哪个参数有问题,但它们看起来不错,但是我不知道srt=sco 的值是什么意思。基于this docsrt是资源类型,但不知道sco的值是什么意思。

很迷茫,求建议。

对于任何未来的读者来说,扩展事件会话(因为他们编写文件)会令人困惑地需要 blob 容器,而不是通用/文件/队列容器。至少我只能让他们那样工作。

【问题讨论】:

    标签: rest azure azure-storage


    【解决方案1】:

    您可能对 SAS URL 的呈现方式感到困惑。实际上,您获得的 SAS URL 只是提供了如何使用 SAS 令牌的示例,它们不能直接使用。因此,您看到了这些错误的发生。

    1. 服务级 SAS URL,即您从 Storage Explorer 获得的那个。

      格式为fileEndPoint/fileShareName?SASToken。 SASToken 允许我们对指定文件共享中的所有文件进行操作。要利用令牌,我们需要在 URL 中添加文件名,即fileEndPoint/fileShareName/fileName?SASToken

      comp=list&restype=container 用于列出 Blob Container 中的 Blob,而不是用于文件共享。

    2. 帐户级 SAS URL,您从 Azure 门户获得的那个。

      格式为fileEndPoint/?SASToken。同样,我们需要补充 URL 以使其有效,即fileEndPoint/fileShareName/fileName?SASToken。请注意,此 SASToken 对所有存储资源具有所有权限,因为所有选项都已选中。

      sco表示我们有权限对服务、容器、对象进行操作,表示权限范围,详见doc

    我不熟悉 Azure SQL 扩展事件会话,但如果您只需要处理一个文件共享中的文件,第一个就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 2021-06-05
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      相关资源
      最近更新 更多