我創建了一個文件系統抽象,我用相對路徑存儲文件,例如/uploads/images/img1.jpg
。在沒有連接到Azure的情況下獲取Blob Uri
這些可以保存在本地文件系統(相對於文件夾)或Azure中。然後,我還可以請求一種方法,讓我訪問該相對路徑的URL。
在Azure中,這是目前正在做類似如下:
public string GetWebPathForRelativePathOnUserContentStorage(string relativeFileFullPath)
{
var container = getCloudBlobContainer();
CloudBlockBlob blob = container.GetBlockBlobReference(relativeFileFullPath);
return blob.Uri.ToString();
}
在一個普通的網站,有可能是說在一個頁面40張圖片 - 所以這得到的所謂像40倍。這首先是慢?我注意到有在生成的URL一個特定的模式:
https://[storageAccountName].blob.core.windows.net/[container_name]/[relative_path]
我可以放心地生成URL,而無需使用Azure存儲API?
是的,但比另一個快得多嗎?我寧願使用Azure API,但我的印象是很慢。 – 2014-10-02 14:37:32
我不認爲你能夠測量兩者之間的時差。在一個循環中你正在創建新的對象(類型爲CloudBlockBlob),而在另一箇中你只是給字符串賦值。所以請選擇:)。我仍然會採用第一種方法,因爲這種方式可以讓你在安全的情況下失敗,因爲你試圖創建一個不使用.blob.core.windows.net後綴的blob url。 – 2014-10-02 14:44:13