我创建了一个文件系统抽象,我用相对路径存储文件,例如/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