Laravel Voyager / S3存储-无法检索头像

时间:2019-03-21 11:57:10

标签: php laravel amazon-s3 voyager

我已经设置了我的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

2 个答案:

答案 0 :(得分:1)

您需要确保您的S3存储桶可公开访问。否则,如果没有令牌,您将无法查看图像。

答案 1 :(得分:0)

基本上,当您尝试上传新图像时,需要将公开程度设置为公开,否则得到503。

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

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

或者另一种方法是将 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'
        ],

希望这可以帮助任何人。