2017-07-28 60 views
3

我使用的作曲家包「Rackspace公司/ PHP-opencloud」與如何使用PHP訪問和上傳文件到機架空間打開的雲容器上的文件夾?

composer require rackspace/php-opencloud 

,並試圖上載並獲得

包括自動加載的文件的文件夾中的文件列表,並添加安裝

require 'vendor/autoload.php'; 

使用文檔http://docs.php-opencloud.com/en/latest/services/object-store/index.html給出的過程,但我沒有得到解決方案來訪問容器內的文件夾(在我的情況下的食譜)。如何將文件上傳到容器「食譜」中的「圖像」和「上傳」目錄中。

$client = new OpenCloud\OpenStack('{keystoneUrl}', array(
    'username' => '{username}', 
    'password' => '{apiKey}', 
    'tenantId' => '{tenantId}', 
)); 

$service = $client->objectStoreService('{catalogName}', '{region}', '{urlType}'); 

$ containers = $ service-> listContainers();

foreach ($containers as $container) { 
    /** @param $container OpenCloud\ObjectStore\Resource\Container */ 
    printf("Container name: %s\n", $container->name); 
    printf("Number of objects within container: %d\n", $container->getObjectCount()); 
} 

通過上面的代碼,我能夠訪問容器的清單,我可以設置容器,可以取我發現Rackspace公司網站上的答案

$containers = $service->listContainers(); 
** @param $container OpenCloud\ObjectStore\Resource\Container */ 
$container = $service->getContainer('{containerName}'); 

回答

5

名單: https://developer.rackspace.com/docs/cloud-files/quickstart/?lang=php

他們解釋清楚,我們不能創建新的容器中的任何容器內我們可以通過子目錄,傳遞對象的名稱,如說明如下:

雖然您無法創建嵌套容器,但云文件確實支持子目錄或子文件夾。通過特殊的命名約定將對象上傳到子目錄,方法是在對象名稱中包含子目錄路徑,並使用正斜槓字符/分隔路徑段。

例如,如果你想要的對象的相對URL是/images/kittens/thumbnails/kitty.png,使用相對路徑對象名稱

$object = $container->uploadObject('{subdirectories}/{object_name}', $handle); 
上傳對象的容器
相關問題