Привет! В настоящее время я использую PHP API Rackspace OpenCloud File для хранения файлов в другом проекте, однако у меня есть требование использовать вложенные контейнеры.
У меня есть часть программного обеспечения на локальном компьютере, который сопоставлен с контейнером под названием / 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();
?>
есть идеи?
Есть несколько удобных методов, которые вы можете использовать.
При перечислении контейнеры могут фильтровать по их префиксу:
$containers = $service->listContainers(['prefix' => $client]);
И чтобы проверить, существует ли контейнер, вы можете использовать:
$name = sprintf("%s-%s", $client, $container->name);
if ($service->containerExists($name)) {
Кроме того, вы должны иметь возможность делать то, что вы хотите.
Если вы столкнулись с конкретными ошибками, пожалуйста, опубликуйте их здесь или отправьте трассировка стека HTTP к поддержка по электронной почте перечислены на их странице разработчика.
Других решений пока нет …