簡體   English   中英

如何使用PHP訪問架構空間打開的雲容器並將文件上傳到文件夾?

[英]How to access and upload files into folders on rackspace open cloud container using PHP?

我使用的是作曲家包'rackspace / php-opencloud'

composer require rackspace/php-opencloud

並嘗試上傳並獲取文件夾中的文件列表

包括自動加載文件並添加

require 'vendor/autoload.php';

使用文檔http://docs.php-opencloud.com/en/latest/services/object-store/index.html上給出的過程,但我沒有獲得訪問容器內的文件夾的解決方案(在我的案例中的食譜) )。 如何將文件上傳到容器“食譜”中的“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}');

我在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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM