& quot; Один из входных данных запроса находится вне диапазона & quot; при использовании Azure Storage PHP SDK

Я запускаю этот код

require_once 'windowsazure\windowsazure.php';

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

try {

$connectionString = "DefaultEndpointsProtocol=http;AccountName=xxx;AccountKey=yyyy";

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

$createContainerOptions = new CreateContainerOptions();

$createContainerOptions->setPublicAccess(PublicAccessType::CONTAINER_AND_BLOBS);


// Set container metadata
$createContainerOptions->addMetaData("key1", "value1");
$createContainerOptions->addMetaData("key2", "value2");

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

foreach($blobs as $blob)
{
echo $blob->getName().": ".$blob->getUrl()."<br />";
}

// Create container.
$blobRestProxy->createContainer("phpcontainer", $createContainerOptions);

}
catch(ServiceException $e) {
$code = $e->getCode();
$error_message = $e->getMessage();
echo $code . ": " . $error_message . "<br/>";
}

Тем не менее, он сообщит о следующей ошибке

Обнаружено исключение ServiceException. 400: Ошибка: Код: 400 Значение: один из
входные данные запроса вне диапазона. детали (если есть): OutOfRangeInputOne
входных данных запроса вне диапазона. RequestID: хххххх
Время: 2015-05-13T08: 47: 18.0943278Z

когда дело дошло до первой строки отправки запроса в хранилище Azure

$blob_list = $blobRestProxy->listBlobs("mycontainer");

Я установил зависимость Azure PHP SDK через грушу (http_request2, mail_mime, mail_mimedecode) и поместите их в положение по умолчанию c:\php\pear\

И connectionstring Я использовал должен быть правильным.

Что я пропустил?

Спасибо

0

Решение

Оказывается, я неправильно указал недопустимое имя учетной записи в строке подключения, которую я здесь замаскировал, точнее говоря, я использую верхний регистр в имени учетной записи, но на самом деле имя контейнера Azure не может содержать верхний регистр, и мой проект PHP не добавил верхний регистр в метод преобразования нижнего регистра …

В любом случае, надеясь, что любой, кто сталкивался с подобными проблемами, может сначала проверить имя учетной записи, имя контейнера и имя большого двоичного объекта.

Спасибо

3

Другие решения

https://Your_blob_url.blob.core.windows.net/containerImage2-f110ea8t-5ada-42f2-8f64-2614c9c45df0 Я передавал это в URL, где я не разделяю контейнер, затем я изменил на https://Your_blob_url.blob.core.windows.net/container/Image2-f110ea8t-5ada-42f2-8f64-2614c9c45df0
и это сработало для меня …

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector