Blob存储 - 连接字符串不工作php

时间:2013-03-08 14:01:47

标签: php azure azure-storage-blobs

我写了这个:

Creating a container in blob storage Azure - PHP

以下是我的连接sting格式:

抱怨容器不存在,我的连接字符串如下:

$connectionString = 'DefaultEndpointsProtocol=http;AccountName=<name of container>;AccountKey=<primary access key>'; –

然而,当我像这样连接时,它一直抱怨无法找到容器,并弹出404错误。当我将容器名称中的存储名称和密钥

中的主键粘贴时

知道为什么吗?

由于

这是我的代码:

<?php


require_once 'vendor\autoload.php';

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

$connectionString = 'DefaultEndpointsProtocol=http;AccountName=<name of container>;AccountKey=<primary access key>'; –`

// Create blob REST proxy.
$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString);


try {
    // List blobs.
    $blob_list = $blobRestProxy->listBlobs(<container>);
    $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/en-us/library/windowsazure/dd179439.aspx
    $code = $e->getCode();
    $error_message = $e->getMessage();
    echo $code.": ".$error_message."<br />";
}

?>

错误:

404:失败:代码:404值:指定的容器不存在。详细信息(如果有):ContainerNotFound指定的容器不存在。 RequestId:44efdbaf-0a20-4b35-96bf-9dcc486ab9a1时间:2013-03-08T15:00:36.7615754Z。

1 个答案:

答案 0 :(得分:2)

在Azure中,存储帐户容器之间存在差异。

存储帐户是容器的集合 - 理论上仅受Azure帐户中存储限制的限制。

在您的问题中,您似乎没有在存储帐户中创建容器“mycontainer”。这将解释“指定的容器不存在”异常 - 在您明确创建容器之前,它不存在。

您可以在Azure门户中检查您的容器是否存在 - 在存储帐户中您将看到指向容器的链接 - 在该链接下是该存储帐户的所有容器的列表。


如果缺少容器,则需要创建它 - 从您链接的教程中,这行代码至少需要执行一次:

$blobRestProxy->createContainer("mycontainer", $createContainerOptions);