league/flysystem-aws-s3-v3 获取自定义元数据

league/flysystem-aws-s3-v3 get custom metada

我在搞乱 flysystem 库(无论如何,它太棒了!) 我在远程 s3 存储桶上创建了一些文件,定义了一些自定义元数据

$conf = [
'visibility' => 'public',
'Metadata'     => [
    'Content-type' => 'image/jpeg',
    'Generated' => 'true'
]];
$response = $filesystem->write('/test/image.jpg', $image_stream, $conf);

'Generated' => 'true' 是自定义元数据,我可以在 AWS Bucket 的控制台中找到它。

我无法读取 文件系统 资源上“生成”的自定义元数据

$allFiles = $filesystem->listContents('/path/', true)->toArray();

##更新 1

我知道我应该按照文档中的说明使用“getWithMetadata”插件:https://flysystem.thephpleague.com/v1/docs/advanced/provided-plugins/#get-file-info-with-explicit-metadata

看起来很容易,但我的源代码中似乎没有任何 League\Flysystem\Filesystem::addPlugin() 方法。

有人可以帮我吗?

要使用 S3 FlySystem 适配器,您需要初始化 S3 客户端

$client = new Aws\S3\S3Client($options);

您可以在 S3 SDK 中使用

$allFiles = $filesystem->listContents($path)->sortByPath()->toArray();

$file = $allFiles[0];
$headers = $client->headObject(array(
"Bucket" => $bucket,
"Key" => $file->path()
));

print_r($headers->toArray());

获取所有文件元数据的列表!