【问题标题】:Laravel 8 S3 Storage Issues Retrieving FilesLaravel 8 S3 存储问题检索文件
【发布时间】:2021-11-02 12:08:19
【问题描述】:

我一直在尝试使用 S3 存储来为我的网站存储图像。图片上传并可以在存储桶中看到,但是在检索要显示在刀片​​页面中的图片时遇到问题。

目前我保存的文件如下所示:

$path = $request->file('coverimg')->store('coverimgs', 's3');
Storage::disk('s3')->setVisibility($path, 'public');

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

$project->coverimg = $url;
$project->save();

这会上传文件并将URL存储到其中,但我认为URL在我使用时会出现一些错误:

src="{{ Storage::disk('s3')->response($project->coverimg) }}"

为了得到我得到的图像

在路径中找不到文件:https://xyz.s3.eu-west-2.amazonaws.com/coverimgs/xyz.png

我花了一段时间才意识到 http:/ 后面缺少一个斜杠。该图像从未在存储桶中公开。我在这里错过了什么?

【问题讨论】:

    标签: laravel amazon-s3 heroku laravel-blade laravel-8


    【解决方案1】:

    问题是刀片使用

    src="{{ Storage::disk('s3')->response($project->coverimg) }}"
    

    转义一些 HTML,包括 URL 中的斜杠。

    使用

    src="{!! Storage::disk('s3')->response($project->coverimg) !!}"
    

    不会转义,并给出完整的正确路径。但是,由于其他问题导致 s3 存储桶无法使图像公开可见,因此该图像仍然无法查看。

    【讨论】:

      【解决方案2】:

      在我看来 / 被转义了。 使用 URL 助手

      url($project->coverimg)
      

      【讨论】:

        猜你喜欢
        • 2019-08-12
        • 2018-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-24
        相关资源
        最近更新 更多