如何使用PHP访问和上传文件到机架空间打开的云容器上的文件夹?

问题描述:

我使用的作曲家包“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}'); 

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

他们解释清楚,我们不能创建新的容器中的任何容器内我们可以通过子目录,传递对象的名称,如说明如下:

虽然您无法创建嵌套容器,但云文件确实支持子目录或子文件夹。通过特殊的命名约定将对象上传到子目录,方法是在对象名称中包含子目录路径,并使用正斜杠字符/分隔路径段。

例如,如果你想要的对象的相对URL是/images/kittens/thumbnails/kitty.png,使用相对路径对象名称

$object = $container->uploadObject('{subdirectories}/{object_name}', $handle); 
上传对象的容器