我的 php 代码似乎是正确的(与 blob 存储对话的部分)。
//talk to blob storage, get links, based on file name
$storageClient = $this->azure->get_blob_storage();
foreach($result as $photo)
{
$sharedAccessUrl[] = $storageClient->generateSharedAccessUrl(
'container',
$photo['File'],
'b',
'r',
$storageClient ->isoDate(time()),
$storageClient ->isoDate(time() + 3000)
);
}
foreach($sharedAccessUrl as $item)
{
$pictures[] = $item;
}
这将获取所有绝对 url 链接,然后将其存储在一个数组中,将其传递给视图并检索图像。像这样:
<img src="<?php echo $pictures[$i]; ?>" height=100px width="100px">
(where pictures[$i] = http://azure blobstorage etc...
在我的本地机器上,每次我刷新页面或浏览有图像的页面时,它们都会正常加载。但是,当我将我的应用程序上传到 azure 网站时,我经常会得到损坏的图像,然后每次出现图像时都需要“刷新页面”。尽管图像的链接是正确的,但在我单击应该出现图像的 div 上的检查元素之后。
我正在使用 3 个月试用版的 azure 网站的“共享版本”。PHP版本和我的本地机器完全一样,还有.net框架。
有谁知道为什么会这样?
我检查了日志,但它们没有帮助。
解决方案:
在 blob 存储和天蓝色网站上设置的时间似乎有延迟。
$storageClient ->isoDate(time()-60),
$storageClient ->isoDate(time() + 3000)
在第一行添加 -60。它应该工作。