Laravel 5.8如何检索Amazon S3的路径以查看和下载

时间:2019-07-18 09:33:33

标签: laravel amazon-s3 filepath

        $filepath = $project->logopath;
        $fullpath = "app/$filepath";

        return response()->download(storage_path($fullpath), null, []);

我现在准备进入生产阶段,我在S3磁盘上的文件有问题。我有一个控制器,用于管理我的上传。上面的代码在本地磁盘上工作正常。

我能够将文件上传到我的s3磁盘。

问题:

如何在s3上检索文件的正确路径? 我已经尝试过;

            $path = Storage::disk('s3')->path($filepath);

2 个答案:

答案 0 :(得分:0)

如果您想查看s3文件。您需要公共URL而不是路径。您可以这样获得:

$url = Storage::disk('s3')->url($filename);

如果您希望公众可以使用图片,请不要忘记在上传过程中将public作为第三个参数传递。喜欢:

Storage::disk('s3')->put($fileName, $fileContents, 'public');

答案 1 :(得分:0)

要在Store上的s3文件中,您需要执行以下操作。

假设我想在s3上存储某种日志

 $path ='logs/'.$request->logs->getClientOriginalName();

     $s3 = Storage::disk('s3')->put($path,file_get_contents($request->logs),'public');

     Model::create([
     'path' => $path
     ])

要获取该文件路径,您可以执行以下操作(您已经正确执行了操作)

   $path = Storage::disk('s3')->path($filepath);

注意:我正在使用file_get_contents将文件流传输到s3,以便在文件太大的情况下不会导致服务器泄漏内存