function createContainerIfNotExists($blobRestProxy)
{
    // See if the container already exists.
    $listContainersOptions = new ListContainersOptions();
    $listContainersOptions->setPrefix(CONTAINERNAME);
    $listContainersResult = $blobRestProxy->listContainers($listContainersOptions);
    $containerExists = false;
    foreach ($listContainersResult->getContainers() as $container) {
        if ($container->getName() == CONTAINERNAME) {
            // The container exists.
            $containerExists = true;
            // No need to keep checking.
            break;
        }
    }
    if (!$containerExists) {
        echo "Creating container.\n";
        $blobRestProxy->createContainer(CONTAINERNAME);
        echo "Container '" . CONTAINERNAME . "' successfully created.\n";
    }
}
示例#2
0
 function createContainer()
 {
     $HashedEmail = hash("md5", $this->Email);
     $listContainersOptions = new ListContainersOptions();
     $listContainersOptions->setPrefix($HashedEmail);
     $listContainersResult = $this->blobRestProxy->listContainers($listContainersOptions);
     $containerExists = false;
     foreach ($listContainersResult->getContainers() as $container) {
         if ($container->getName() == $HashedEmail) {
             $containerExists = true;
             break;
         }
     }
     if (!$containerExists) {
         $createContainerOptions = new CreateContainerOptions();
         try {
             $this->blobRestProxy->createContainer($HashedEmail, $createContainerOptions);
         } catch (ServiceException $e) {
             $error_message = $e->getMessage();
             echo $error_message;
         }
     }
 }
 /**
  * @covers WindowsAzure\Blob\BlobRestProxy::createContainer
  */
 public function testCreateContainerWithMetadata()
 {
     $containerName = 'createcontainerwithmetadata' . $this->createSuffix();
     $metadataName = 'Name';
     $metadataValue = 'MyName';
     $options = new CreateContainerOptions();
     $options->addMetadata($metadataName, $metadataValue);
     $options->setPublicAccess('blob');
     // Test
     $this->createContainer($containerName, $options);
     // Assert
     $options = new ListContainersOptions();
     $options->setIncludeMetadata(true);
     $result = $this->restProxy->listContainers($options);
     $containers = $result->getContainers();
     $metadata = $containers[0]->getMetadata();
     $this->assertEquals($metadataValue, $metadata[$metadataName]);
 }
 /**
  * Check if a container exists in the current account.
  *
  * @since 3.0.0
  * @link  https://goo.gl/6XsKAJ Official SDK example for checking containers.
  *
  * @param string $container_name The container name to check.
  * @return bool True if the container exists in the account, false if not.
  */
 public static function container_exists_in_storage($container_name)
 {
     /** @var WindowsAzure\Blob\BlobRestProxy $client */
     $client = self::getStorageClient();
     $container_exists = false;
     $options = new ListContainersOptions();
     $options->setPrefix($container_name);
     //TODO: check cache for containers list and use it if present.
     $result = $client->listContainers($options);
     $containers = $result->getContainers();
     //TODO: Cache the containers list.
     /** @var WindowsAzure\Blob\Models\Container $container */
     foreach ($containers as $container) {
         if ($container->getName() === $container_name) {
             $container_exists = true;
             break;
         }
     }
     return $container_exists;
 }
 public function listContainers($containerPrefix = null)
 {
     $result = array();
     $opts = new ListContainersOptions();
     if (!is_null($containerPrefix)) {
         $opts->setPrefix($containerPrefix);
     }
     $list = $this->restProxy->listContainers($opts);
     foreach ($list->getContainers() as $item) {
         array_push($result, $item->getName());
     }
     return $result;
 }
 /**
  * @covers WindowsAzure\Blob\Models\ListContainersOptions::getIncludeMetadata
  */
 public function testGetIncludeMetadata()
 {
     // Setup
     $options = new ListContainersOptions();
     $expected = true;
     $options->setIncludeMetadata($expected);
     // Test
     $actual = $options->getIncludeMetadata();
     // Assert
     $this->assertEquals($expected, $actual);
 }
示例#7
0
 /**
  * Lists all of the containers in the given storage account.
  * 
  * @param Models\ListContainersOptions $options The optional parameters.
  * 
  * @return WindowsAzure\Blob\Models\ListContainersResult
  * 
  * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179352.aspx
  */
 public function listContainers($options = null)
 {
     $method = Resources::HTTP_GET;
     $headers = array();
     $queryParams = array();
     $postParams = array();
     $path = Resources::EMPTY_STRING;
     $statusCode = Resources::STATUS_OK;
     if (is_null($options)) {
         $options = new ListContainersOptions();
     }
     $this->addOptionalQueryParam($queryParams, Resources::QP_TIMEOUT, $options->getTimeout());
     $this->addOptionalQueryParam($queryParams, Resources::QP_COMP, 'list');
     $this->addOptionalQueryParam($queryParams, Resources::QP_PREFIX, $options->getPrefix());
     $this->addOptionalQueryParam($queryParams, Resources::QP_MARKER, $options->getMarker());
     $this->addOptionalQueryParam($queryParams, Resources::QP_MAX_RESULTS, $options->getMaxResults());
     $isInclude = $options->getIncludeMetadata();
     $isInclude = $isInclude ? 'metadata' : null;
     $this->addOptionalQueryParam($queryParams, Resources::QP_INCLUDE, $isInclude);
     $response = $this->send($method, $headers, $queryParams, $postParams, $path, $statusCode);
     $parsed = $this->dataSerializer->unserialize($response->getBody());
     return ListContainersResult::create($parsed);
 }
 public static function getInterestingListContainersOptions()
 {
     $ret = array();
     $options = new ListContainersOptions();
     array_push($ret, $options);
     $options = new ListContainersOptions();
     $marker = '/' . self::$_accountName . '/' . self::$testContainerNames[1];
     $options->setMarker($marker);
     array_push($ret, $options);
     $options = new ListContainersOptions();
     $marker = '/' . self::$_accountName . '/' . self::$nonExistContainerPrefix;
     $options->setMarker($marker);
     array_push($ret, $options);
     $options = new ListContainersOptions();
     $maxResults = 2;
     $options->setMaxResults($maxResults);
     array_push($ret, $options);
     $options = new ListContainersOptions();
     $prefix = self::$testUniqueId;
     $options->setPrefix($prefix);
     array_push($ret, $options);
     $options = new ListContainersOptions();
     $prefix = self::$nonExistContainerPrefix;
     $options->setPrefix($prefix);
     array_push($ret, $options);
     $options = new ListContainersOptions();
     $prefix = self::$testContainerNames[1];
     $options->setPrefix($prefix);
     array_push($ret, $options);
     $options = new ListContainersOptions();
     $timeout = -1;
     $options->setTimeout($timeout);
     array_push($ret, $options);
     $options = new ListContainersOptions();
     $timeout = 60;
     $options->setTimeout($timeout);
     array_push($ret, $options);
     $options = new ListContainersOptions();
     $includeMetadata = true;
     $options->setIncludeMetadata($includeMetadata);
     array_push($ret, $options);
     $options = new ListContainersOptions();
     $marker = '/' . self::$_accountName . '/' . self::$testContainerNames[1];
     $maxResults = 2;
     $prefix = self::$testUniqueId;
     $timeout = 60;
     $includeMetadata = true;
     $options->setMarker($marker);
     $options->setMaxResults($maxResults);
     $options->setPrefix($prefix);
     $options->setTimeout($timeout);
     $options->setIncludeMetadata($includeMetadata);
     array_push($ret, $options);
     return $ret;
 }
} else {
    error("No file found.");
}
$block_name = $file["name"];
//if there is an account id to upload then change the container otherwise use a default
//container name and add the code to a sub folder
$container = isset($_POST["accnt_id"]) ? $_POST["accnt_id"] : DEFAULT_CONTAINER;
//generate the code for this file
$doc_code = makeRandomString();
$remove_action = isset($_POST["remove_action"]) ? $_POST["remove_action"] : "1";
$remove_access_times = isset($_POST["remove_access_times"]) ? $_POST["remove_access_times"] : "1";
$remove_hours = isset($_POST["remove_hours"]) ? $_POST["remove_hours"] : "1";
try {
    $blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString);
    //createContainerIfNotExists($blobRestProxy);
    $listContainersOptions = new ListContainersOptions();
    $listContainersOptions->setPrefix($container);
    //$listContainersResult = $blobRestProxy->listContainers($listContainersOptions);
    //$containerExists = false;
    // $containers = $listContainersResult->getContainers();
    // for($i = 0; $i < $containers.length; $i++){
    // print_r($containers[$i]);
    // }
    //foreach ($listContainersResult->getContainers() as $container) {
    //    if ($container->getName() == $container) {
    //        $containerExists = true;// The container exists.
    //        // No need to keep checking.
    //        break;
    //    }
    //}
    $createContainerOptions = new CreateContainerOptions();
 /**
  * @covers WindowsAzure\Blob\BlobRestProxy::createContainer
  * @covers WindowsAzure\Blob\BlobRestProxy::deleteContainer
  * @covers WindowsAzure\Blob\BlobRestProxy::listContainers
  */
 private function deleteContainerWorker($options)
 {
     $container = BlobServiceFunctionalTestData::getInterestingContainerName();
     // Make sure there is something to delete.
     $this->restProxy->createContainer($container);
     // Make sure that the list of all applicable containers is correctly updated.
     $opts = new ListContainersOptions();
     $opts->setPrefix(BlobServiceFunctionalTestData::$testUniqueId);
     $qs = $this->restProxy->listContainers($opts);
     $this->assertEquals(count($qs->getContainers()), count(BlobServiceFunctionalTestData::$TEST_CONTAINER_NAMES) + 1, 'After adding one, with Prefix=(\'' . BlobServiceFunctionalTestData::$testUniqueId . '\'), then Containers length');
     $deleted = false;
     try {
         if (is_null($options)) {
             $this->restProxy->deleteContainer($container);
         } else {
             $this->restProxy->deleteContainer($container, $options);
         }
         $deleted = true;
         if (is_null($options)) {
             $options = new DeleteContainerOptions();
         }
         if (!is_null($options->getTimeout()) && $options->getTimeout() < 1) {
             $this->assertTrue(false, 'Expect negative timeouts in $options to throw');
         }
         if (!Configuration::isEmulated() && !BlobServiceFunctionalTestData::passTemporalAccessCondition($options->getAccessCondition())) {
             $this->assertTrue(false, 'Failing access condition should throw');
         }
         // Make sure that the list of all applicable containers is correctly updated.
         $opts = new ListContainersOptions();
         $opts->setPrefix(BlobServiceFunctionalTestData::$testUniqueId);
         $qs = $this->restProxy->listContainers($opts);
         $this->assertEquals(count($qs->getContainers()), count(BlobServiceFunctionalTestData::$TEST_CONTAINER_NAMES), 'After adding then deleting one, with Prefix=(\'' . BlobServiceFunctionalTestData::$testUniqueId . '\'), then Containers length');
         // Nothing else interesting to check for the $options.
     } catch (ServiceException $e) {
         if (is_null($options)) {
             $options = new DeleteContainerOptions();
         }
         if (!is_null($options->getTimeout()) && $options->getTimeout() < 1) {
             $this->assertEquals(500, $e->getCode(), 'getCode');
         } else {
             if (!Configuration::isEmulated() && !BlobServiceFunctionalTestData::passTemporalAccessCondition($options->getAccessCondition())) {
                 $this->assertEquals(412, $e->getCode(), 'getCode');
             } else {
             }
         }
     }
     if (!$deleted) {
         // Try again. If it does not work, not much else to try.
         $this->restProxy->deleteContainer($container);
     }
 }
 /**
  * @covers WindowsAzure\Blob\BlobRestProxy::listContainers
  */
 public function testListContainersWithPrefixWorks()
 {
     // Act
     $opts = new ListContainersOptions();
     $opts->setPrefix(self::$_testContainersPrefix);
     $opts->setMaxResults(3);
     $results = $this->restProxy->listContainers($opts);
     // Assert
     $this->assertNotNull($results, '$results');
     $this->assertEquals(3, count($results->getContainers()), 'count($results->getContainers())');
     $this->assertNotNull($results->getNextMarker(), '$results->getNextMarker()');
     $this->assertEquals(3, $results->getMaxResults(), '$results->getMaxResults()');
     // Act
     $opts = new ListContainersOptions();
     $opts->setPrefix(self::$_testContainersPrefix);
     $opts->setMarker($results->getNextMarker());
     $results2 = $this->restProxy->listContainers($opts);
     // Assert
     $this->assertNotNull($results2, '$results2');
     $this->assertNull($results2->getNextMarker(), '$results2->getNextMarker()');
     $this->assertEquals(0, $results2->getMaxResults(), '$results2->getMaxResults()');
     // Act
     $opts = new ListContainersOptions();
     $opts->setPrefix(self::$_testContainersPrefix);
     $results3 = $this->restProxy->listContainers($opts);
     // Assert
     $this->assertEquals(count($results->getContainers()) + count($results2->getContainers()), count($results3->getContainers()), 'count($results3->getContainers())');
 }