《Windows Azure Platform 系列文章目錄》
Update 2015-05-10
強烈建議使用AzCopy工具,AzCopy命令行工具,是經過優化的、高性能Azure Storage管理工具。
具體請參考Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage傳輸速度
看過我之前幾章內容的讀者都知道,Azure China和Azure Global服務類型的Endpoint是不同的,比如我們創建一個Azure Storage,命名為leizhangstorage。則這個Azure Storage的Endpoint為
- Blob:http://leizhangstorage.blob.core.chinacloudapi.cn/
- Table:http://leizhangstorage.table.core.chinacloudapi.cn/
- Queue:http://leizhangstorage.queue.core.chinacloudapi.cn/
可以看到,Azure China Storage Endpoint為core.chinacloudapi.cn,與Global的不同。
本章我將會給大家介紹,如何管理Azure China Storage Account。一般性有三種管理方式:
1.使用Visual Studio Ultimate 2013的Server Explorer
2.使用Visual Studio Ultimate 2013進行開發
3.使用AzureStorageExplorer For CHN
在開始介紹之前,我們先登陸Azure China管理界面,創建leizhangstorage。位置我們設置為中國東部,即上海的數據中心。如下圖:
注意:存儲賬號必須為英文小寫
方法一:介紹使用Visual Studio Ultimate 2013的Server Explorer。
1.我們先以管理員身份,運行VS2013。
2.打開菜單欄,View->Server Explorer
3.展開Windows Azure->Storage->Attach External Storage
4.在彈出的界面中,輸入Account name, Account key,並且需要設置endpoint
- Blob:http://leizhangstorage.blob.core.chinacloudapi.cn/
- Table:http://leizhangstorage.table.core.chinacloudapi.cn/
- Queue:http://leizhangstorage.queue.core.chinacloudapi.cn/
5.設置完畢后,我們就能看到創建成功的leizhangstorage這個存儲賬號了
我們依次展開leizhangstorage->Blobs,點擊右鍵,選擇Create Blob Container
在彈出的界面中,設置Container name為photos
注意:Container Name也必須為小寫
(注意:我們鼠標左鍵選中之前創建的Container 即photos,可以在屬性中設置這個container的屬性,如下圖。注意我們設置為Blob)
6.在Server Explorer中,雙擊我們之前創建成功的photos,在右側列表中,點擊Upload Blob按鈕,上傳一張照片
7.上傳成功后,就可以看到執行結果。
上圖列表中的URL,就是我們可以通過IE直接訪問的了。(注意,因為筆者在步驟5中設置了讀取權限為Blob,所以可以直接通過IE訪問上傳的照片)
如下圖:
方法二:使用VS 2013進行開發
Azure China Storage Account連接字符串和Azure Global的不同,我們只需要修改相應的連接字符串,就可以直接連接Azure China Storage Account。
以我之前創建的存儲賬號leizhangstorage為例,只需修改以下紅色部分的內容
- <YourStorageAccountName>,設置Account Name
- <YourStorageAccountKey>,設置Account Key
BlobEndpoint=http://<YourStoragAccountName>.blob.core.chinacloudapi.cn/;QueueEndpoint=http://<YourStoragAccountName>.queue.core.chinacloudapi.cn/;TableEndpoint=http://<YourStoragAccountName>.table.core.chinacloudapi.cn/;AccountName=<YourStoragAccountName>;AccountKey=<YourStoragAccountKey>
就可以直接連接Azure China Storage Account
方法三:使用AzureStorageExplorer_For_CN
注意:Azure Storage Explorer默認情況下,是把該Container下的所有Blob都列出來,且不分頁顯示
如果Blob內容很多,就會出現卡死的情況
這個是我的同事根據CodePlex上開源的Azure Storage Explorer(https://azurestorageexplorer.codeplex.com/),修改出來專門針對Azure China的管理工具。
大家可以在這里下載使用。
最新的Azure Storage Explorer已經同時支持Azure Global 和Azure China的Storage Account了。
下載地址在:http://azurestorageexplorer.codeplex.com/
這里我簡單介紹下,如何使用Azure Storage Explorer,將本地的文件存儲到Azure Storage雲端。
1.登陸到Azure管理界面
Azure Global使用https://manage.windowsazure.com/,
Azure China使用https://manage.windowsazure.cn/
創建新的Azure Storage Account,如下圖:
2.創建完畢后,點擊創建成功的存儲賬號,如下圖:
3.頁面跳轉,點擊下圖中的"管理訪問密鑰"
4.在彈出的窗口中,點擊賬戶名稱和主訪問密鑰的按鈕,將存儲賬戶名稱和主訪問密鑰復制到記事本上
5.安裝Azure Storage Explorer,並以管理員身份運行
在主界面上點擊"Add Account",如下圖:
在彈出的界面中,
Storage Account Name復制我們在步驟4中的內容
Storage Account Key復制我們在步驟4中的內容
注意:如果使用的Azure Global的存儲賬號,請選擇Microsoft Azure Default
如果使用的是由世紀互聯運維的Azure China,請選擇Microsoft Azure China。如下圖:
設置完畢后,按Save,進行保存。
6.回到Azure Storage Explorer主界面,我們在下拉框選擇之前設置成功的leidemo
選擇Blob Containers,然后選擇"New"按鈕,如下圖:
7.在彈出的界面中,我們設置container name為public,
(注意Container Name只能使用小寫字母)
Access Level分為三種類型:
- Off:不允許匿名用戶讀取該容器中的Blob;
- Public Container:匿名用戶可以讀取該Container,並且可以列出Container所有Blob內容;
- Public Blob:匿名用戶只能讀取Blob,即只能根據Blob的URL來讀取Blob,無法列出Container下所有的Blob。
筆者需要實驗匿名訪問的功能,我們選擇Public Blob。
(注意,如果是私密性很強的文件,需要將Access Level設置為Off)
8.創建完Blob后,我們可以點擊創建成功的container public,然后點擊下圖的Upload,將本地的文件進行上傳
筆者將本地的截圖進行上傳,並且可以在工具中查看到上傳成功。
點擊上圖中的View按鈕,可以查看到該png圖片的屬性,如下圖:
我們打開IE瀏覽器,在地址欄中輸入上圖的uri中的值,可以以匿名身份查看到Azure Storage中的png圖片。如下圖:
======================================我是分隔符========================================
如果讀者熟悉Shared Access Signature(SAS)的話,我們可以通過Azure Storage Explorer快速生成SAS簽名。
我們選擇Blob Container的名稱,然后點擊上圖中Security
在彈出的窗口中,將Access Level設置為OFF,不允許匿名訪問(圖略)
然后在下圖的Shard Access Signature中,設置SAS的相關屬性
最后點擊Test in Browser,測試使用SAS訪問Private Container的內容。
私有表示,這個Container(文件夾)里面的內容,都不允許匿名訪問
比如 http://mcdmuffinh5mkt.blob.core.chinacloudapi.cn/privatephotos/1.jpg
上面的container name是privatephotos,類型是私有(private)
所以不允許匿名文檔,這也是為什么你之前上傳的資源無法通過IE匿名訪問
對於某些私密的信息,比如內部的圖片、文件,可以設置private類型
公共blob,表示允許訪問這個某一個資源,但是無法遞歸訪問這個container (文件夾)
對於可以匿名訪問資源,比如公共圖片、招聘,可以設置公共blob
公共容器(container),表示可以遞歸訪問這個container(文件夾)下的所有資源