2014-10-17 64 views
0

我有一个引用Azure SQL数据库的基于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> 

到这是什么意思,我不知道。我是Windows Azure的全新用户,所以我甚至不确定我是否处于正确的轨道上?

是否有任何文档实际解释了步骤或允许从SQL DB存储访问Azure存储帐户所需的内容?

+0

你能描述一下你到底想要完成什么吗?这个问题不是很清楚。我知道你得到的错误的答案,但我会等待你的更多细节,以便我可以(希望)只提供一个答案。 – 2014-10-17 15:29:11

+1

我的歉意,我想知道如何从我的应用程序中存储数据库中的文件。我希望用户能够下载文件,Excel电子表格等。编辑它们,然后将它们重新保存到特定位置的数据库中。我有数据库了,一切工作与我的应用程序,但现在我需要能够上传和下载文件。存储帐户是否正确答案?我怎样才能将它合并到我的vb.net应用程序中? – 2014-10-17 15:33:15

回答

0

我不建议将二进制内容保存在SQL数据库中。相反,我会建议您将它们保存在BLOB存储中。这是我这样做的原因:

  • Blob存储是专为此目的而设计的。
  • 将数据存储在blob存储中要比将数据存储在SQL数据库中便宜得多。
  • 通过将二进制数据与其他数据进行存储,您不必要地使数据访问层变得庞大,因为所有数据都将通过数据库进行流式传输。

这些场景中的一般方法是将二进制数据保存为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到您的网址,然后将其粘贴到浏览器您将看到所有斑点的XML列表
  • 要下载blob,您需要在URL中插入blob的名称。因此,如果您的URL类似https://[youraccount].blob.core.windows.net/[yourcontainer]?[somestuffhere],并且您的斑点名称为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/

+0

非常感谢这么多信息!现在我有一些方向:) – 2014-10-17 16:17:00

相关问题