如何在PHP中列出Bucket子目录中的所有文件?

如何在PHP中列出Bucket子目录中的所有文件?,php,google-cloud-platform,google-cloud-storage,Php,Google Cloud Platform,Google Cloud Storage,查看了GCP存储API的PHP文档和书架教程()之后,我不知道如何列出位于Bucket子目录中的文件。 不过,我已经看过了,这段代码是根据Python改编的如果它真的像使用ls命令一样简单,我将如何从PHP运行此命令?我已经从谷歌的Github上翻阅了repo,我不确定在这种情况下使用哪一个 我通过composer提供了这两个库。我只是想澄清一下,我是通过DigitalOcean Droplet远程运行这些,而不是通过应用程序引擎 "google/appengine-php-sdk": "^1.

查看了GCP存储API的PHP文档和书架教程()之后,我不知道如何列出位于Bucket子目录中的文件。

不过,我已经看过了,这段代码是根据Python改编的如果它真的像使用ls命令一样简单,我将如何从PHP运行此命令?我已经从谷歌的Github上翻阅了repo,我不确定在这种情况下使用哪一个

我通过composer提供了这两个库。我只是想澄清一下,我是通过DigitalOcean Droplet远程运行这些,而不是通过应用程序引擎

"google/appengine-php-sdk": "^1.9",
"google/cloud": "^0.39.2",
有一种“对象”方法可以帮你做到这一点

use Google\Cloud\Storage\StorageClient;

$storage = new StorageClient();
$bucket = $storage->bucket('my-bucket');
$objects = $bucket->objects([
    'fields' => 'items/name,nextPageToken'
]);

foreach ($objects as $object) {
    echo $object->name() . PHP_EOL;
}

PHP存储客户机的文档在这里:

Brandon:这可以列出bucket中的所有文件,但不能列出标题中提到的bucket“子目录”中的文件。有没有办法只获取某个子目录中的项目?也许使用前缀?确切地说是前缀。在字段之后,添加以下内容:
'prefix'=>'my/sub/directory/'
使用前缀似乎可以远程获取整个bucket对象,然后在本地发送它以对特定子目录的整个对象(可能是10000个文件)进行排序。如何仅远程获取子目录?我将继续搜索文档,如果发现任何内容,我将发回此处。前缀通过API的对象进行远程处理。列表
prefix
参数,请参阅