標籤:
《Windows Azure Platform 系列文章目錄》
熟悉Azure平台的讀者都知道,Azure Blob有三層架構。如:(注意blob.core.chinacloudapi.net是Azure China的Service Endpoint)
1.Blob Name: 儲存帳號名稱
2.Container Name,容器名稱。概念上類似於檔案夾
3.Blob Name:檔案名稱
Azure Storage Block Blob概念上類似網盤,使用者可以把檔案、圖片、照片直接儲存到Azure Block Blob中。
相比傳統的檔案系統目錄,Azure Block Blob只有一層結構,即Container/BlobName。Azure Block Blob不支援多級目錄。
假設客戶的軟體架構要求支援多級目錄的話,遷移到Azure Block Blob就會遇到一些檔案。如:
qq.png這個檔案的系統全目錄是:D:\1\2\3\qq.png
而我們還有一個同樣的檔案名稱qq.png,他的目錄如下:
與上面的qq.png的檔案名稱是相同的,但是檔案目錄是不同的。
遇到這種情況,我們有兩種解決方案:
一.使用關係型資料庫,建立資料庫表,實現多級目錄與Azure Storage對應關係
二.將Azure Blob Name進行重新命名
這裡分別介紹一下這2個解決方案
一.使用關係型資料庫,建立資料庫表,實現多級目錄與Azure Storage對應關係
在這種情況下,我們需要準備以下操作
1.將檔案系統的檔案進行重新命名,設定為guid。如111-222-333.jpg
2.在關係型資料庫建立如下表,欄位為:
| 索引 |
來源資料名稱 |
AzureBlob資料名稱 |
AzureBlobAccount |
AzureBlobContainerName |
AzureBlobURL |
| 1 |
myphoto.png |
111-222-333.jpg |
contoso |
photos |
https://contoso.blob.core.chinacloudapi.cn/photos/111-222-333.jpg |
| 2 |
myword.docx |
AAA-BBB-CCC.docx |
contoso |
words |
https://contoso.blob.core.chinacloudapi.cn/words/AAA-BBB-CCC.docx |
通過把檔案系統中的來源資料,進行檔案名稱的重新命名,並且把重新命名後的檔案儲存到Azure Storage中,以改進Azure Blob只有一層目錄。
二.直接修改Azure Blob Name,檔案名稱設定為包含\
這樣我們把Blob Name修改為:1/2/3/qq.png和A/B/C/qq.png。修改為檔案系統的全路徑:
如下面的串連:
https://leizhangstorage.blob.core.chinacloudapi.cn/share/1/2/3/qq.png
https://leizhangstorage.blob.core.chinacloudapi.cn/share/A/B/C/qq.png
顯示結果如下:
這樣就可以實現Azure Blob的多級目錄了。
另外如何可以方便的把本地檔案夾的檔案儲存到Azure Storage中呢?這裡推薦2種方法:
1.使用AzCopy
具體可以參考我之前的部落格文章:Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage傳輸速度
將本機電腦某個目錄下的所有檔案和子目錄,遞迴複製到Azure Storage中
該命令如下:
AzCopy /Source:C:\myfolder /Dest:https://leizhangstorage.blob.core.windows.net/files /DestKey:[儲存帳號的Key] /S
注意上面的命令列中,最後的參數是 /S
假設C:\myfolder下有以下目錄:
C:\myfolder\abc.txt
C:\myfolder\abc1.txt
C:\myfolder\abc2.txt
C:\myfolder\subfolder\a.txt
C:\myfolder\subfolder\abcd.txt
則執行上述AzCopy命令後,上面所有5個檔案都會被複製到Azure Storage中。
2.使用Blob Browser
上面介紹的AzCopy畢竟是命令列工具,如果對命令列工具不熟悉的話,可以使用BlobBrowser。
BlobBrowser是GUI圖形介面的工具,背後其實是利用AzCopy命令列工具。
我們安裝完BlobBrowser之後,可以在介面上進行配置。如:
中,我們點擊Add,增加新的儲存帳號資訊:
在快顯視窗中,輸入以下資訊:
中,
- Name輸入顯示名稱
- Storage Account Name,輸入儲存帳號名稱
- Storage Account Key,輸入儲存帳號的密鑰
注意,如果使用國內由世紀互聯營運的Azure,需要在中,勾選Use China Endpoint。
這樣就可以使用Blob Browser的圖形介面,來管理並上傳下載Azure Storage Account了。
Windows Azure Storage (22) Azure Storage如何支援多級目錄