php - Working with Azure Storage Emulator returns 404 -


so, i've downloaded azure sdk php , started emulator. ok.
copy&pasted code microsoft, can create new test container.

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;  // create blob rest proxy. $blobrestproxy = servicesbuilder::getinstance()->createblobservice('usedevelopmentstorage=true');   // optional: set public access policy , metadata. // create container options object. $createcontaineroptions = new createcontaineroptions();  // set public access policy. possible values // publicaccesstype::container_and_blobs , publicaccesstype::blobs_only. // container_and_blobs: // specifies full public read access container , blob data. // proxys can enumerate blobs within container via anonymous // request, cannot enumerate containers within storage account. // // blobs_only: // specifies public read access blobs. blob data within // container can read via anonymous request, container data not // available. proxys cannot enumerate blobs within container via // anonymous request. // if value not specified in request, container data // private account owner. $createcontaineroptions->setpublicaccess(publicaccesstype::container_and_blobs);  // set container metadata. $createcontaineroptions->addmetadata("key1", "value1"); $createcontaineroptions->addmetadata("key2", "value2");  try {     // create container.     $blobrestproxy->createcontainer("mycontainer", $createcontaineroptions); } catch (serviceexception $e) {     // handle exception based on error codes , messages.     // error codes , messages here:     // http://msdn.microsoft.com/library/azure/dd179439.aspx     $code = $e->getcode();     $error_message = $e->getmessage();     echo $code . ": " . $error_message . "<br />"; } 

when run code, nice error message.

404: fail:
code: 404
value: specified resource not exist.

what's wrong this? i'm running out of ideas. firstly had different code didn't work either, try use sample directly ms no luck.

cli shows emulator running , endpoints correct.

i used fiddler capture http request generated sdk, url path /testcontainer?restype=container. , according rest api guide https://msdn.microsoft.com/en-us/library/azure/dd179468.aspx, url path should /devstoreaccount1/mycontainer?restype=container.

currently, there workaround develop azure storage on local emulator. can add local account name devstoreaccount1 every time when use container name, e.g.

$blobrestproxy->createcontainer("devstoreaccount1/testcontainer"); $blobrestproxy->createblockblob("devstoreaccount1/testcontainer", "testblob", "test string"); $blobrestproxy->listblobs("devstoreaccount1/testcontainer"); 

any further concern, please feel free let me know.


Comments