/** * List contents of a directory. * * @param string $directory * @param bool $recursive * * @return array */ public function listContents($directory = '', $recursive = false) { $keys = $this->client->keys($directory . '/*'); $values = []; foreach ($keys as $key) { if (!$recursive && preg_match("|{$directory}/.+/|", $key) !== 0) { continue; } $stream = tmpfile(); fwrite($stream, $this->client->get($key)); rewind($stream); $values[$key] = ['mimetype' => Util::guessMimeType(stream_get_meta_data($stream)['uri'], stream_get_contents($stream)), 'type' => 'file']; } return Util::emulateDirectories($values); }