Я запускаю этот код
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
Я использовал должен быть правильным.
Что я пропустил?
Спасибо
Оказывается, я неправильно указал недопустимое имя учетной записи в строке подключения, которую я здесь замаскировал, точнее говоря, я использую верхний регистр в имени учетной записи, но на самом деле имя контейнера Azure не может содержать верхний регистр, и мой проект PHP не добавил верхний регистр в метод преобразования нижнего регистра …
В любом случае, надеясь, что любой, кто сталкивался с подобными проблемами, может сначала проверить имя учетной записи, имя контейнера и имя большого двоичного объекта.
Спасибо
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
и это сработало для меня …