Rackspace OpenCloud File PHP API嵌套容器问题

时间:2016-05-16 08:52:20

标签: php rackspace-cloud rackspace rackspace-cloudfiles

您好我正在使用Rackspace OpenCloud File PHP API在不同的项目中存储文件但是我需要使用嵌套容器。

我在本地电脑上有一个软件,它映射到一个名为/ Act /

的容器

我需要将Act文件夹指向默认值而不是根文件夹。

例如:

/ act / 12 - 测试公司/

而不是

/ 12 - 测试公司/

<?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();
?>

任何想法?

1 个答案:

答案 0 :(得分:0)

您可以使用一些便捷方法。

列出容器时,可以按前缀过滤:

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

要检查容器是否存在,您可以使用:

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

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

除此之外,你应该能够做你想做的事。

如果您遇到特定错误,请在此处发布或将a HTTP stack trace发送至其开发者页面上列出的support e-mail