首页 > 解决方案 > 如何根据上传的文件名找到 S3 对象键

问题描述

我有一个 s3 存储桶,用于通过我的 PHP/Laravel 应用程序进行文件存储。

在某些情况下,我需要手动将一堆 pdf 添加到给定文件夹/前缀中的存储桶中。然后我需要在我的数据库中运行 csv 导入。部分导入是 pdf 文件名。

对于每次迭代认为 csv 导入,我想使用已知的文件名并将导入的项目链接到 S3 中的 pdf。

我一直在搞砸这个并安装了 AWS S3 SDK,但我没有看到基于文件名从 S3 取回对象的方法。

我正在运行:php 7.2 aws sdk v3.9 via composer

我目前正在测试的是:

   $results = $s3->getPaginator('ListObjects', [
    'Bucket' => env('S3BUCKET'),
    'Prefix' => 'folder-name/'
]);


foreach ($results as $result) {
    foreach ($result['Contents'] as $object) {
        $doc = $s3->getObject([
            'Bucket' => env('S3BUCKET'),
            'Key'    => $object['Key']
        ]);
        dd($doc);

这里的问题是没有列出文件名,所以我无法进行任何类型的比较。

TIA

标签: phplaravel-5amazon-s3

解决方案


推荐阅读