1
我的php代碼似乎正確(與blob存儲對話的部分)。從Azure網站中的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存儲和Azure網站的時間延遲。
$storageClient ->isoDate(time()-60),
$storageClient ->isoDate(time() + 3000)
將-60添加到第一行。它應該工作。