【问题标题】:Laravel Voyager / S3 Storage - can't retrieve avatarLaravel Voyager / S3 存储 - 无法检索头像
【发布时间】:2019-08-12 06:41:47
【问题描述】:

我已经设置了我的 laravel/voyager 以便它将用户头像上传到 S3。 上传成功,但用户头像坏了。我得到了 403。怎么了?

config/voyager.php

storage' => [
  'disk' => 's3',
],

config/filesystems.php

's3' => [
   'driver' => 's3',
   'key' => env('S3_ACCESS_KEY_ID'),
   'secret' => env('S3_SECRET_ACCESS_KEY'),
   'region' => env('REGION'),
   'bucket' => env('BUCKET')
],

.env

S3_ACCESS_KEY_ID=accesskeyid
S3_SECRET_ACCESS_KEY=accesskey
BUCKET=bucket
REGION=region

【问题讨论】:

  • 你的图片在数据库中的路径是什么?

标签: php laravel amazon-s3 voyager


【解决方案1】:

您需要确保您的 S3 存储桶可公开访问。否则你将无法在没有令牌的情况下查看图像。

【讨论】:

    【解决方案2】:

    基本上,当您尝试上传新图片时,您需要做的是将可见性设置为公开,否则您会得到 503。

    Storage::disk('s3')->setVisibility($image,'public');
    

    如果图像或文件夹已经存在,则需要将 S3 控制台中的可见性更改为公开。

    或者另一种方法是将 config/filesystems.php 文件中的可见性设置为公开

    's3' => [
                'driver' => 's3',
                'key' => env('AWS_ACCESS_KEY_ID'),
                'secret' => env('AWS_SECRET_ACCESS_KEY'),
                'region' => env('AWS_DEFAULT_REGION'),
                'bucket' => env('AWS_BUCKET'),
                'url' => env('AWS_URL'),
                'endpoint' => env('AWS_ENDPOINT'),
                'visibility' => 'public'
            ],
    

    希望这可以帮助任何人。

    【讨论】:

      猜你喜欢
      • 2021-11-02
      • 2018-09-03
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 2020-10-18
      • 2018-10-25
      • 1970-01-01
      • 2017-10-14
      相关资源
      最近更新 更多