首页 > 解决方案 > 如何在 wordpress 帖子中列出存储在谷歌云存储桶中的文件?

问题描述

是否可以列出我的 Google Cloud Storage 存储桶中可用的文件?

有什么插件吗?

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

如果没有任何插件,请指出我应该学习哪些 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?

标签: phpwordpressgoogle-cloud-platformgoogle-cloud-storage

解决方案


Google Cloud Storage 没有文件夹结构。 对于某些背景知识,子目录的工作原理是一本不错的读物。

实际上,在 Google 提供的Wordpress 网站中列出了一个插件,还有一个在社区中广泛传播的插件,称为WP-Stateless

如果您想使用官方的Storage API ,您也可以实现自定义解决方案,但我相信这些插件目前对您来说已经足够了。

您可以使用以下示例代码列出 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"]);
}

推荐阅读