Php 如何在wordpress post中列出存储在google云存储桶中的文件?

Php 如何在wordpress post中列出存储在google云存储桶中的文件?,php,wordpress,google-cloud-platform,google-cloud-storage,Php,Wordpress,Google Cloud Platform,Google Cloud Storage,可以列出我的Google云存储桶中可用的文件吗 有插件吗 我想将文件夹名作为参数传递(有点像短代码),然后短代码可以从文件夹中获取文件并列出它们,如果可能的话,还可以使用元数据。我相信会有一个插件可用,或者有一堆插件用于解决问题 如果没有任何插件,请给我指出正确的方向,告诉我自己应该学习哪些PHP函数 if ( function_exists( 'switch_to_blog' ) ) switch_to_blog(1); $murl = get_option( 'siteurl' )

可以列出我的Google云存储桶中可用的文件吗

有插件吗

我想将文件夹名作为参数传递(有点像短代码),然后短代码可以从文件夹中获取文件并列出它们,如果可能的话,还可以使用元数据。我相信会有一个插件可用,或者有一堆插件用于解决问题

如果没有任何插件,请给我指出正确的方向,告诉我自己应该学习哪些PHP函数

    if ( function_exists( 'switch_to_blog' ) ) switch_to_blog(1);
$murl = get_option( 'siteurl' ) . $mdir;
if ( function_exists( 'restore_current_blog' ) ) restore_current_blog();
// MP3 folder relative URL
$mrelative = preg_replace( '/^https?\:/m', '', $murl );
$mrelative = preg_replace( '/^\/\//', '', $mrelative );
$mrelative = explode( '/', $mrelative );
array_shift($mrelative);
$mrelative = '/'.implode('/', $mrelative);

$mpath = ABSPATH . mb_substr($mdir, 1);

上面的代码从本地服务器读取文件夹,而我希望url是自定义的,在哪里输入自定义url?

您可以与Google API交互并获取GCS bucket中的对象列表


类似的答案可以在这里找到:

谷歌云存储没有文件夹结构。对于一些背景来说,这是一本很好的读物

实际上,谷歌提供的列表中列出了一个插件,还有一个在社区中广泛传播的插件,名为

如果你想使用官方软件,你也可以实现一个定制的解决方案,但是我相信现在这些插件对你来说已经足够了

您可以使用以下示例代码列出GCS存储桶中的对象:

$storage = new Google_Service_Storage($this->gcsClient);
$listObjects = $storage->objects->listObjects($this->bucket, array());
$items = $listObjects->getItems();

foreach ($items as $item) {
    print_r($item["name"]);
}

你能解释一下你的代码是做什么的吗?向代码中添加内容会很有帮助。上面的代码在短代码中指定的文件夹中查找mp3文件。我希望GCS对象也会发生同样的情况。我用一个关于如何在PHP中列出bucket中的文件的示例编辑了我的答案,这对您有帮助吗?WP无状态不允许我们使用短代码指定foldername来列出媒体文件。您更新的这段代码意味着很多。非常感谢,但是如何在bucket中指定foldername/directoryname,我还可以通过替换“name”来获取文件的元数据和文件的url吗?嗨,Chris32,在您提到后,我了解了gcs对象及其结构,现在如果假设,我需要从子目录中读取文件,例如:。gs://example.com/music/abcdef/,如何从那里获取文件?。允许动态给定目录吗。?。比如$foldername=array[i],然后是gs://example.com/music/$foldername??但该代码不以foldername为参数并扫描其中的文件。对象存储中没有文件夹。您可以提供要列出的完整gs://路径,并且应该可以工作。如果您可以显示示例代码,这将非常有用。