在没有连接到Azure的情况下获取blob Uri

时间:2014-10-02 13:36:31

标签: azure

我创建了一个文件系统抽象,我用相对路径存储文件,例如/uploads/images/img1.jpg

然后可以将它们保存在本地文件系统(相对于文件夹)或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]

我可以在不使用Azure存储API的情况下安全地生成该网址吗?

1 个答案:

答案 0 :(得分:3)

  

在普通网站上,可能会在一个页面中显示40张图片 - 所以   这个被称为40次。这首先是慢的吗?

完全没有。您上面编写的代码不会对存储进行任何调用。它只是创建一个CloudBlockBlob对象的实例。如果您使用的是GetBlockBlobReferenceFromServer方法,那么它将是一个不同的故事,因为该方法会调用存储。

  

`我注意到生成的URL中有一个特定的模式:

     

_HTTPS:// [storageAccountName] .blob.core.windows.net / [CONTAINER_NAME] / [RELATIVE_PATH]

     

我可以在不使用Azure存储API的情况下安全地生成该网址吗?

绝对是的。假设你只使用标准的东西,那将是非常好的。非标准内容包括为blob存储使用自定义域或连接到存储帐户的地理位置。