2016-05-16 19 views
0

Hallo Ich verwende derzeit die Rackspace OpenCloud File PHP API für die Dateiablage in einem anderen Projekt, aber ich habe eine Anforderung, verschachtelte Container zu verwenden.Rackspace OpenCloud File PHP API verschachtelte Container Probleme

Ich habe ein Stück Software auf einem lokalen PC, die zu einem Container zugeordnet wird aufgerufen/Act/

Ich brauche anstelle des Stammordner des Gesetzes Ordner als Standard zu zeigen.

zum Beispiel:

/act/12 - Test Company/

statt

/12 - Test Company/

<?php 
    $query = "SELECT clientNAME FROM CRM_clients WHERE clientID = '$client'"; 
    $result = mysqli_query($db, $query); 
    $rows = mysqli_num_rows($result); 
    $row = clean_fetch_assoc($result); 
    $name = $row['clientNAME']; 

    $containers = $objectStoreService->listContainers(); 

    var_dump($containers); 

    $ContainerExists = 0; 

    foreach ($containers as $container) { 
     $ContainerName = $container->name; 
     if (strpos($ContainerName, $client) !== false) { 
      $ContainerExists = 1; 
     } 
    } 

    if ($ContainerExists == 1) { 
     $containerCONCAT = $client . " - " . $name; 
     $container = $objectStoreService->getContainer($containerCONCAT); 
    }elseif ($ContainerExists == 0) { 
     $containerCONCAT = $client . " - " . $name; 
     $container = $objectStoreService->createContainer($containerCONCAT); 
     $container = $objectStoreService->getContainer($containerCONCAT); 
    } 

    //Get list of files 
    $objects = $container->objectList(); 
?> 

irgendwelche Ideen?

Antwort

0

Es gibt einige bequeme Methoden, die Sie verwenden können.

Wenn Container Auflistung von ihrem Präfix filtern:

$containers = $service->listContainers(['prefix' => $client]); 

und zu prüfen, ob ein Behälter vorhanden ist, können Sie verwenden:

$name = sprintf("%s-%s", $client, $container->name); 

if ($service->containerExists($name)) { 

Davon abgesehen, sollten Sie in der Lage sein, was zu tun ist du möchtest machen.

Wenn Sie auf bestimmte Fehler stoßen, posten Sie sie bitte hier oder schicken Sie a HTTP stack trace an die support e-mail, die auf ihrer Entwicklerseite aufgeführt ist.