我使用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&sr=b&sp=r&sig=SaiUToJg%5Ab3zcdef8EeOq84urHf6HQqS%2BAFt1dEQMNI%3D">
有没有人见过这个问题?关于我可能做错的任何建议?
答案 0 :(得分:0)
我怀疑这可能与您在图片blob的共享访问签名(SAS)上设置的到期时间有关。当您将SAS设置为只读权限时,是否有任何理由需要将SAS设置为1分钟?