获得破图片来自Blob存储在Azure的网站(Getting broken images from

2019-10-18 02:43发布

我的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...

对我的本地机器,每次我刷新页面,或通过在有图片的网页一抖,他们都负载了罚款。 然而,当我上传我的应用程序在蔚蓝的网站,我常常中断的图像,然后将需要“刷新页面”每次发生的形象出现的时间。 尽管这是一个连接到该图像是正确的,当我点击在该图像是假设出现在div元素进行检查。

我使用从3个月的试用Azure网站的“共享版”。 PHP的版本是完全一样的我的本地机器,与.NET Framework一起。

有没有人有这为什么发生任何想法?

我已经检查了日志,但他们也没有什么帮助。

解:

似乎是设定在Blob存储和Azure网站的时间延迟。

           $storageClient ->isoDate(time()-60),
           $storageClient ->isoDate(time() + 3000)

添加-60到第一线。 它应该工作。

Answer 1:

看起来你回答了你自己的问题。 这与其说延迟 ,因为它是时钟漂移和计算节点和存储节点之间的时间同步。 它总是一个好主意,开始时间为一到两分钟,当你想要的链接开始工作(假设你打算为链接的工作“现在”)前。 没有伤害的启动时间可以追溯到即时。



文章来源: Getting broken images from blob storage in Azure websites