首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP访问rackspace开放云容器上的文件并将文件上传到文件夹?

如何使用PHP访问rackspace开放云容器上的文件并将文件上传到文件夹?
EN

Stack Overflow用户
提问于 2017-07-28 19:20:47
回答 1查看 483关注 0票数 3

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

代码语言:javascript
复制
composer require rackspace/php-opencloud

并尝试上载并获取文件夹中的文件列表

包含autoload文件并添加

代码语言:javascript
复制
require 'vendor/autoload.php';

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

代码语言:javascript
复制
$client = new OpenCloud\OpenStack('{keystoneUrl}', array(
  'username' => '{username}',
  'password' => '{apiKey}',
  'tenantId' => '{tenantId}',
));

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

$containers = $service->listContainers();

代码语言:javascript
复制
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());
}

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

代码语言:javascript
复制
$containers = $service->listContainers();
** @param $container OpenCloud\ObjectStore\Resource\Container */
$container = $service->getContainer('{containerName}');
EN

回答 1

Stack Overflow用户

发布于 2017-07-28 19:41:17

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

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

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

例如,如果希望对象的相对URL为/images/kitten/thumbnails/kitty.png,请使用该相对路径作为对象名将对象上载到容器

代码语言:javascript
复制
$object = $container->uploadObject('{subdirectories}/{object_name}', $handle);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45372203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档