我需要创建一个SAS,以便可以创建Azure SQL扩展事件会话。事件会话需要通过SAS的文件数据存储目标,我无法创建有效的目标。这是我尝试过的:
CloudFile
对象,则会收到经常看到的错误,表明服务器无法验证请求。确保包括签名在内的Authorization标头的值正确形成。签名不匹配。要使用的签名字符串是rwl 2018-12-25T16:29:51Z 2018-12-29T16:29:00Z / file / cs7f0fbc5104d4ax435dx883 / $ root 2018-03-28 comp=list&restype=container
。不高兴。srt=sco
表示什么。基于this doc srt
是资源类型,但是我不知道值sco
表示什么。非常困惑,正在寻找建议。
对于任何将来的读者,令人困惑的扩展事件会话(因为他们写了文件)需要blob容器,而不是常规/文件/队列容器。至少我只能让他们那样工作。
答案 0 :(得分:1)
您可能对SAS URL的显示方式感到困惑。实际上,您获得的SAS URL仅提供了有关如何使用SAS令牌的示例,它们不能直接使用。因此,您看到了这些错误。
服务级别SAS URL,即您从Storage Explorer中获得的URL。
它的格式为fileEndPoint/fileShareName?SASToken
。 SASToken授予我们对指定文件共享内的所有文件进行操作的权限。要利用令牌,我们需要在URL中添加fileName,即fileEndPoint/fileShareName/fileName?SASToken
。
comp=list&restype=container
是在Blob容器中列出Blob,而不是在文件共享中列出。
帐户级SAS URL,您从Azure门户获得的URL。
它的格式为fileEndPoint/?SASToken
。同样,我们需要补充网址以使其有效,即fileEndPoint/fileShareName/fileName?SASToken
。请注意,由于选中了所有选项,因此此SASToken对所有存储资源都具有所有权限。
sco
表示我们有权对服务,容器和对象进行操作,这表明了权限的范围,请查看doc以获取详细信息。
我对Azure SQL扩展事件会话不熟悉,但是如果您只需要处理一个文件共享中的文件,那么1st就足够了。