1

私はコンテナをリストしようとしていますが、これまでのところまったく運がありません...私はすでに試しました

$aBlobContainer = $blobRestProxy->listContainers();

for($i = 0;$i<= count($aBlobContainer); $i++)
{
 echo 'Blob Container name is: '.$aBlobContainer[$i]->Name."\n";
}

しかし、私はエラーが発生しています

Cannot use object of type WindowsAzure\Blob\Models\ListContainersResult as array

一日中それを回避しようとしているだけで、何の進歩もないようです...私が何かばかげたことをしているのか、それともコンテナが既に存在するかどうかを確認するためのより良い方法があるのか​​ どうか教えてください。ありがとう!

編集:

変数 $aBlobContainer の var_dump が

    object(WindowsAzure\Blob\Models\ListContainersResult)#42 (5) {
      ["_containers":"WindowsAzure\Blob\Models\ListContainersResult":private]=>
      配列(2) {
        [0]=>
        object(WindowsAzure\Blob\Models\Container)#48 (4) {
          ["_name":"WindowsAzure\Blob\Models\Container":private]=>
          文字列(6) "abc123"
          ["_url":"WindowsAzure\Blob\Models\Container":private]=>
          文字列(48) "http://orig.blob.core.windows.net/abc123"
          ["_metadata":"WindowsAzure\Blob\Models\Container":private]=>
          配列(0) {
          }
          ["_properties":"WindowsAzure\Blob\Models\Container":private]=>
          object(WindowsAzure\Blob\Models\ContainerProperties)#47 (2) {
            ["_lastModified":"WindowsAzure\Blob\Models\ContainerProperties":private]=>
            オブジェクト(日時)#49 (3) {
              ["日付"]=>
              文字列(19) "2012-11-29 01:32:20"
              ["timezone_type"]=>
              int(2)
              ["タイムゾーン"]=>
              文字列(3) "GMT"
            }
            ["_etag":"WindowsAzure\Blob\Models\ContainerProperties":private]=>
            文字列(19) ""0x8CF9BE88256926F""
          }
        }
        [1]=>
        object(WindowsAzure\Blob\Models\Container)#46 (4) {
          ["_name":"WindowsAzure\Blob\Models\Container":private]=>
          文字列(8) "multi123"
          ["_url":"WindowsAzure\Blob\Models\Container":private]=>
          文字列(50) "http://orig.blob.core.windows.net/multi123"
          ["_metadata":"WindowsAzure\Blob\Models\Container":private]=>
          配列(0) {
          }
          ["_properties":"WindowsAzure\Blob\Models\Container":private]=>
          object(WindowsAzure\Blob\Models\ContainerProperties)#45 (2) {
            ["_lastModified":"WindowsAzure\Blob\Models\ContainerProperties":private]=>
            object(DateTime)#53 (3) {
              ["日付"]=>
              文字列(19) "2012-11-29 03:13:16"
              ["timezone_type"]=>
              int(2)
              ["タイムゾーン"]=>
              文字列(3) "GMT"
            }
            ["_etag":"WindowsAzure\Blob\Models\ContainerProperties":private]=>
            文字列(19) ""0x8CF9BF69C25759F""
          }
        }
      }
      ["_prefix":"WindowsAzure\Blob\Models\ListContainersResult":private]=>
      ヌル
      ["_marker":"WindowsAzure\Blob\Models\ListContainersResult":private]=>
      ヌル
      ["_nextMarker":"WindowsAzure\Blob\Models\ListContainersResult":private]=>
      ヌル
      ["_maxResults":"WindowsAzure\Blob\Models\ListContainersResult":private]=>
      ヌル
    }

4

3 に答える 3

3

ソースコードを見る:

$blobContainers = $blobRestProxy->listContainers(); //returns ListContainersResult

コンテナのリストを取得するには、次の呼び出しを行う必要があります。

$blobContainerArray = $blobContainers->getContainers(); //exposes the array of containers

次に、その配列をforeachまたはforステートメントで使用できるようにする必要があります。このワークフローは、README.md ファイルに示されているように、コンテナー内から BLOB のリストを返すワークフローと一致します。

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

    foreach($blobs as $blob)
    {
        echo $blob->getName().": ".$blob->getUrl()."<br />";
    }
} catch(ServiceException $e){
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}
于 2012-12-02T21:51:02.623 に答える
-1

エラーメッセージから、$ blobRestProxy-> listContainers()がオブジェクトを返しているように見えます。以下のコードを試してください。

$aBlobContainer = $blobRestProxy->listContainers();

foreach($aBlobContainer as $row) {
    echo 'Blob Container name is: '.$row->Name."\n";
}

$ aBlobContainerに配列(つまり$ aBlobContainer [$ i])としてアクセスすると、おそらくエラーが発生していました。

* 編集 *

foreach($aBlobContainer as $key => $row) {
  echo $row->Name . "\n";
}
于 2012-11-29T05:48:13.617 に答える