2016-10-14 32 views
2

Azure Web App上で実行されているPHP wikiからAzure Blob Storageへのアクセスを許可していますが、参照には問題があるようですブロブコンテナ。Azure Web App上で動作するPHPからのBlobストレージへのアクセス

いくつかの参考文献によると、私は作者とmicrosoft/windowsazureプラグインを私のアプリケーションにインストールしました。ベンダフォルダの場所はD:\ site \ wwwroot \ wiki \ bar \ vendorです。

また、下記のコードでindex2.php(index.phpが現在使用されています)を作成します。

<?php 

ini_set("display_errors", On); 
error_reporting(E_ALL); 

require_once 'vendor\autoload.php'; 

use WindowsAzure\Common\ServicesBuilder; 
use WindowsAzure\Common\ServiceException; 

// Create blob REST proxy. 
$connectionString = "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<key>;"; 
$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString); 


try { 
    // List blobs. 
    $blob_list = $blobRestProxy->listBlobs("wiki"); 
    $blobs = $blob_list->getBlobs(); 

    foreach($blobs as $blob) 
    { 
     echo $blob->getName().": ".$blob->getUrl()."<br />"; 
    } 
} 
catch(ServiceException $e){ 
    // Handle exception based on error codes and messages. 
    // Error codes and messages are here: 
    // http://msdn.microsoft.com/library/azure/dd179439.aspx 
    $code = $e->getCode(); 
    $error_message = $e->getMessage(); 
    echo $code.": ".$error_message."<br />"; 
} 

ただし、このエラーが発生しました。

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'The path of a URI with an authority must start with a slash "/" or be empty' in D:\home\site\wwwroot\wiki\bar\vendor\guzzlehttp\psr7\src\Uri.php:693 
Stack trace: 
    #0 D:\home\site\wwwroot\wiki\bar\vendor\guzzlehttp\psr7\src\Uri.php(502): GuzzleHttp\Psr7\Uri->validateState() 
    #1 D:\home\site\wwwroot\wiki\bar\vendor\microsoft\azure-storage\src\Common\Internal\ServiceRestProxy.php(124): GuzzleHttp\Psr7\Uri->withPath('wiki') 
    #2 D:\home\site\wwwroot\wiki\bar\vendor\microsoft\azure-storage\src\Blob\BlobRestProxy.php(1181): MicrosoftAzure\Storage\Common\Internal\ServiceRestProxy->send('GET', Array, Array, Array, 'wiki', 200) 
    #3 D:\home\site\wwwroot\wiki\bar\index2.php(18): MicrosoftAzure\Storage\Blob\BlobRestProxy->listBlobs('wiki') 
    #4 {main} thrown in D:\home\site\wwwroot\wiki\bar\vendor\guzzlehttp\psr7\src\Uri.php on line 693 

この種類のPHPコードでは、この場所からストレージにアクセスできませんか?

答えて

1

解決策が見つかりました。

エラーメッセンジャーによると、コンテナ名である "wiki"の前に "/"を付ける必要がありました。 azure.microsoft.comの指示では、まだ解決策の理由を見つけることができないように記号を付けていませんでした。

関連する問題