Laravel 5.5 - 将文件传输到S3

时间:2018-03-26 18:22:19

标签: laravel

我有一个看起来像这样的文件名数组

array (
'file1.jpg',
'file2.jpg',
'file3.jpg'
)

我正在尝试遍历它们并将它们上传到这样的S3存储桶..

foreach ($filenames as $filename) {
    Storage::disk('s3')->put(

        /* S3 */
        's3foldername/' . $foldername . '/' . $filename,

        /* Local Storage */
        storage_path('localfolder/' . $foldername . '/' . $filename),
        'public'
    );
}

由于某种原因这不起作用,所有路径都可以检查出来。我是否需要先阅读文件内容?

1 个答案:

答案 0 :(得分:0)

Storage :: put()方法将文件内容资源句柄作为其第二个参数 - 请参阅此处的文档:{ {3}}

在您的情况下,以下应该可以解决问题:

 Storage::disk('s3')->put(
    's3foldername/' . $foldername . '/' . $filename,
    file_get_contents(storage_path('localfolder/' . $foldername . '/' . $filename)),
    'public'
);

这只是其中一个选项 - 请参阅相关文档。