Laravel 文件大时上传返回空值

Laravel file Uploading returning null when size is large

我正在尝试使用 laravel、filepond 和 s3 存储桶上传视频。当文件大小大于 5Mb 时,aws 不会返回任何内容,甚至文件也不会上传。但是当文件大小小于 5Mb 时,它正在上传并且我能够获得 s3 文件路径。

public function upload_video(Request $request){
    if ($request->hasFile('link')) {
        $video_link = Storage::disk('s3')->put('videos', $request->file('link'));

        return $video_link;
    }
}

如果你想上传大文件,你应该使用流。这是执行此操作的代码:

$disk = Storage::disk('s3');
$disk->put($targetFile, fopen($sourceFile, 'r+'));

确保 PHP.INI 设置允许上传足够高。 PHP.INI 默认情况下只允许 2M,因此将此限制增加到 20M。而且Amazon S3不喜欢一次性上传超过5MB的文件,需要流式传输。

请使用给定的参考资料 link 通过使用从服务器流式传输到 S3 来解决此问题。

https://www.webdesign101.net/laravel-s3-uploads-failing-when-uploading-large-files-in-laravel-5-8/