图像无法从Azure blob存储中持续加载

时间:2015-10-31 11:55:10

标签: azure-storage-blobs

我使用Azure blob存储时遇到了一个不稳定的问题,我的图像无法持续加载。问题是,有时当我加载网页时,浏览器不会显示图像,但如果我刷新它将正确加载。

当图像未加载时,浏览器会显示默认图像占位符。这是一个例子:

如果我检查图像占位符的超链接,我发现它与图像加载成功时的相同,除了共享访问签名不同。

有时,同一个图像无法为一个链接加载,但即使在同一页面和相同的页面加载中也会成功加载另一个链接。 URL中唯一的区别是共享访问签名。

以下是使用共享签名

构建URL的代码
// Get reference to blob (file) that is to be downloaded
blob = blobContainer.GetBlobReference(blobURL.ToString());

// Get shared access signature to download file from azure blob (valid upto "active duration" minutes) from now
signature = blob.GetSharedAccessSignature(new SharedAccessPolicy()
{
SharedAccessStartTime = null,
SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(60), 
Permissions = SharedAccessPermissions.Read
});

// Append signature query string to blob / file that is to be downloaded
downloadURL = string.Format("{0}{1}", blob.Uri.AbsoluteUri, signature);

这是网页上的最终HTML图片链接,即如果我在浏览器的网页上显示来源:

<img alt="Profile Picture" src="https://mystorageaccount2.blob.core.windows.net/abcdefg1-hi23-40b5-86de-a20b568f5626/1601/1234d664d1b74ce1aebf4403e5b74af7.jpg?se=2015-10-31T11%3A38%3A39Z&amp;sr=b&amp;sp=r&amp;sig=SaiUToJg%5Ab3zcdef8EeOq84urHf6HQqS%2BAFt1dEQMNI%3D">

有没有人见过这个问题?关于我可能做错的任何建议?

1 个答案:

答案 0 :(得分:0)

我怀疑这可能与您在图片blob的共享访问签名(SAS)上设置的到期时间有关。当您将SAS设置为只读权限时,是否有任何理由需要将SAS设置为1分钟?