J'ai mis en place un site web Windows azure (php), et je veux me connecter à l'environnement de stockage azure (blob). J'ai parcouru les Comment utiliser le service Blob depuis PHP mais cela ne concerne que le cas où le site web est stocké localement.
J'ai essayé de mettre en place quelques cas, mais je reçois constamment une erreur http 500.
<?php
require_once 'WindowsAzure/WindowsAzure.php';
use WindowsAzure\Common\ServicesBuilder;
use WindowsAzure\Common\ServiceException;
//$connectionString = "\WindowsAzure\Blob\Internal\IBlob";
// Create blob REST proxy.
$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString); // the code gets stuck at this line, result is a HTTP 500 error
$content = fopen("C:\Users\Public\Pictures\Sample%20Pictures\Woestijn.jpg", "r");
$blob_name = "newBlob";
try {
//Upload blob
$blobRestProxy->createBlockBlob("default", $blob_name, $content);
}
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 />";
}?>
Y a-t-il quelqu'un qui a eu un problème similaire et qui a réussi à le résoudre ?
EDIT :
J'ai maintenant réduit la recherche de l'erreur. Je suis allé dans le fichier ServicesBuilder.php, et j'ai commenté ligne par ligne, jusqu'à ce que la page cesse de fonctionner. La ligne où l'erreur s'est produite est la suivante $httpClient comme indiqué ci-dessous :
public function createBlobService($connectionString)
{
$settings = StorageServiceSettings::createFromConnectionString(
$connectionString
);
$httpClient = $this->httpClient();
$serializer = $this->serializer();
$uri = Utilities::tryAddUrlScheme(
$settings->getBlobEndpointUri()
);