在Azure中创建容器时出错

时间:2017-09-08 14:34:36

标签: php azure azure-storage azure-storage-blobs

我今天使用此页面上的指示安装了Azure客户端库https://docs.microsoft.com/en-us/azure/storage/blobs/storage-php-how-to-use-blobs#create-a-php-application

但我得到的错误。

400:失败:

代码:400

值:其中一个HTTP标头的值格式不正确。

详细信息(如果有):InvalidHeaderValue其中一个HTTP标头的值格式不正确。 RequestId:f0046f48-001e-0046-22ab-2823fb000000时间:2017-09-08T14:06:55.1682373Zx-ms-version2012-02-12。

我的代码如下:

require_once 'vendor/autoload.php';

use WindowsAzure\Common\ServicesBuilder;
use MicrosoftAzure\Storage\Blob\Models\CreateContainerOptions;
use MicrosoftAzure\Storage\Blob\Models\PublicAccessType;
use MicrosoftAzure\Storage\Common\ServiceException;

$connectionString = "DefaultEndpointsProtocol=http;AccountName=MyAccountName;AccountKey=4cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==";

$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString);

//create container
$createContainerOptions = new CreateContainerOptions();

// private to the account owner.
$createContainerOptions->setPublicAccess(PublicAccessType::CONTAINER_AND_BLOBS);

// Set container metadata.
$createContainerOptions->addMetaData("category", "my first category data");

try    {
    // Create container.
    $blobRestProxy->createContainer("test", $createContainerOptions);
}
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 "Erro in create container <br><br>";
    echo $code.": ".$error_message."<br />";
    //print_r($e);
}

在上面的代码我得到了#34;没有找到班级&#34;错误如此更新的代码如下:

use WindowsAzure\Common\ServicesBuilder;
use WindowsAzure\Blob\Models\CreateContainerOptions;
use WindowsAzure\Blob\Models\PublicAccessType;
use WindowsAzure\Common\ServiceException;

在上述代码更改后,&#34;未找到类&#34;错误解决了,我也检查了连接字符串是否运行正常,但收到错误,这在我的问题开头描述。

谢谢:)

2 个答案:

答案 0 :(得分:0)

您的代码看起来很好。我可以使用Azure SDK for PHP的v.0.4.2版重现错误。我通过将SDK升级到最新版本(v0.5.5

解决了问题
{
    "require": {
        "microsoft/windowsazure": "^0.5.5"
    }
}

答案 1 :(得分:0)

存在Azure SDK版本问题,因此您可以从我的博客下载SDK v0.5.5,也可以使用PHP 5.4

http://mytechdevelopment.blogspot.com/2018/01/azure-sdk-055-for-php-54-or-igher.html