2014-10-17 66 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

相關問題