我有一个基于 vb.net 的应用程序,它引用了一个 Azure SQL 数据库,我已经设置了一个存储帐户,我想将应用程序中的文件存储到该帐户。我不确定如何在数据库和存储帐户之间创建该链接?
通过“Windows Azure 存储服务中的 SQL Server 数据文件”教程,我无法为 sotrage blob 创建 URI。使用 Azure 存储资源管理器,我选择我的容器进入安全状态并生成一个一切正常的签名。当我使用“在浏览器中测试”按钮测试 URI 时,我收到此错误:
<Error>
<Code>AuthenticationFailed</Code>
<Message>
Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. RequestId:22ab2830-0001-001d-67a0-5460bb000000 Time:2014-10-17T14:06:11.9864269Z
</Message>
<AuthenticationErrorDetail>
Signature did not match. String to sign used was r 2014-10-17T06:00:00Z 2014-10-25T06:00:00Z /macrocitrus/$root 2014-02-14
</AuthenticationErrorDetail>
</Error>
Run Code Online (Sandbox Code Playgroud)
这意味着什么我不知道。我是 Windows Azure 的全新用户,所以我什至不确定我是否走在正确的轨道上?
是否有任何文档实际解释了允许从 SQL DB 到 Azure 存储帐户的存储访问的步骤或需要什么?
我不建议将二进制内容保存在 SQL 数据库中。相反,我建议您将它们保存在 blob 存储中。以下是我这样做的原因:
这些场景中的一般方法是将二进制数据作为 blob 保存在 blob 存储中(将 blob 视为云中的文件)。由于每个 blob 都有一个唯一的 URL,因此您可以将 URL 存储在 SQL 数据库表中。因此,如果我们采用这种方法,您将首先将 blob 上传到 blob 存储中,获取其 URL,然后更新数据库。
如果你在 blob 存储中搜索上传文件,我相信你会找到很多带有源代码的示例(所以我不会在这里提供它:);我希望一切顺利)。
现在来到你得到的错误。基本上,您使用 Azure 存储资源管理器创建的链接被称为Shared Access Signature (SAS) URL基本上授予对您的存储帐户的时间限制/权限绑定访问。现在 Azure 存储资源管理器为你提供了容器的 SAS URL。您可以通过两种方式使用该 URL(假设您在创建 SAS URL 时授予Read&List权限:
restype=container&comp=list到您的 URL,然后将其粘贴到浏览器中,您将看到所有 blob 的 XML 列表。https://[youraccount].blob.core.windows.net/[yourcontainer]?[somestuffhere]并且您的 blob 名称是myawesomepicture.png,则用于在浏览器中查看文件的 SAS URL 将是https://[youraccount].blob.core.windows.net/[yourcontainer]/myawesomepicture.png?[somestuffhere]我写了一篇关于使用共享访问签名的博客文章,您可能会发现它很有用:http : //gauravmantri.com/2013/02/13/revisiting-windows-azure-shared-access-signature/。
| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |