【问题标题】:How to access and upload files into folders on rackspace open cloud container using PHP?如何使用 PHP 访问机架空间开放云容器上的文件夹并将其上传到文件夹中?
【发布时间】:2017-07-28 11:20:46
【问题描述】:

我正在使用安装的 composer 包 'rackspace/php-opencloud'

composer require rackspace/php-opencloud

并尝试上传并获取文件夹内的文件列表

包含自动加载文件并添加

require 'vendor/autoload.php';

使用文档http://docs.php-opencloud.com/en/latest/services/object-store/index.html 中给出的过程,但我没有获得访问容器内文件夹的解决方案(在我的情况下是食谱)。如何将文件上传到容器“recipes”中存在的目录“images”和“uploads”中。

$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());
}

通过上面的代码,我可以访问容器列表,我可以设置容器并获取列表

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

【问题讨论】:

    标签: php rackspace php-opencloud


    【解决方案1】:

    我在 rackspace 网站上找到了答案: https://developer.rackspace.com/docs/cloud-files/quickstart/?lang=php

    他们清楚地解释了我们不能在任何容器内创建新容器,我们可以传递子目录然后传递对象的名称,如下所述:

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

    例如,如果您希望对象的相对 URL 为 /images/kittens/thumbnails/kitty.png,则使用该相对路径作为对象名称将对象上传到容器

    $object = $container->uploadObject('{subdirectories}/{object_name}', $handle);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 2021-09-14
      • 1970-01-01
      相关资源
      最近更新 更多