【发布时间】: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